2014-01-31 56 views
1

我的团队针对不同的iOS屏幕(例如iPad,iPad Mini,iPod,iPhone)执行不同的屏幕设计。是否有一种通用的方法可以完成支持/适合所有屏幕的单一设计。目前,我们在不同设备和应用的不同版本上面临更多问题。上面提到的是完全原生的iOS应用程序。不是手机/不是钛。iOS通用屏幕设计

这就是我们如何完成不同设备的编码。

  if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
      if([UIScreen mainScreen].bounds.size.height == 568) 
      { 
       HelpView.frame=CGRectMake(7, 0, 300, finalheight+30); 
       himgview.frame=CGRectMake(7, 560, 300, finalheight+30); 
      } 
      else if([UIScreen mainScreen].bounds.size.height==480){ 
       HelpView.frame=CGRectMake(0, 0, 310, finalheight+30); 
       himgview.frame=CGRectMake(5, 555, 310, finalheight+30); 
      } 
     } 
     else{ 
      if([UIScreen mainScreen].bounds.size.height == 568) 
      { 
       HelpView.frame=CGRectMake(7, 0, 300, finalheight+30); 
       himgview.frame=CGRectMake(7, 550, 300, finalheight+30); 
      } 
      else if([UIScreen mainScreen].bounds.size.height==480){ 
       HelpView.frame=CGRectMake(0, 0, 310, finalheight+30); 
       himgview.frame=CGRectMake(5, 555, 310, finalheight+30); 
      } 
     } 
+0

你的意思是不同的屏幕设计?它看起来不同?或者只是为相应的设备创建不同的笔尖? – Mani

+0

不同尺寸 –

+0

在IOS中,有一些不同的屏幕(尺寸),iPhone视网膜3.5“,视网膜4”,iPad,iPad mini。所以你可以相应地为iPad和iPhone使用两个不同的xib。为了适应视网膜3.5“和4”,使用Autolayout。如果你的观点更复杂,也可以使用另一个xib。 – Mani

回答

2

通过做不同的屏幕设计,我假设你的意思是使用不同的XIB或故事板? 如果这确实是你正在做的权利,我建议你看看Auto Layout。 这样,您只需描述您希望布置元素的方式,并且iOS会根据屏幕大小自动布局它们。这样,您只需一两个(iPad和iPhone)故事板即可脱身,从而无需为每个屏幕分辨率创建单独的布局。
顺便说一句,即使没有自动布局,你也不需要iPad和iPad Mini或iPod 5和iPhone 5的不同布局,因为它们具有相同的分辨率。

+0

这就是我们为不同设备编码的方式。 –

+0

嗨,我用我的团队完成的示例代码更新了我的问题。他们使用此代码在不同设备上显示信息按钮。这是正确的做法吗? –

+1

感谢您添加示例代码。但是,这不是自动布局,因为您自己手动设置所有帧。这意味着每个屏幕分辨率都有很多工作要做,并且改变设计师的设计。当你使用自动布局时,你不应该再设置框架属性,自动布局应该使用当前屏幕尺寸和你自己的约束来计算框架。这样,你就不需要你发布的任何示例代码了。我建议你看看苹果自己的Auto Layout介绍和Ray Wenderlich的'Beginning Auto Layout'教程。 – s1m0n