【发布时间】:2012-10-22 07:25:15
【问题描述】:
我是否必须为 iPhone5 放置一个单独的 xib,如 1 为 iPhone5 和 1 为 iPhone4 和更少这样做似乎是非常糟糕的做法。 任何人都可以对此有所了解吗? iPhone5也使用自动布局?我不明白 Autolayout 的工作原理。
【问题讨论】:
标签: iphone ios ios5 ios6 iphone-5
我是否必须为 iPhone5 放置一个单独的 xib,如 1 为 iPhone5 和 1 为 iPhone4 和更少这样做似乎是非常糟糕的做法。 任何人都可以对此有所了解吗? iPhone5也使用自动布局?我不明白 Autolayout 的工作原理。
【问题讨论】:
标签: iphone ios ios5 ios6 iphone-5
观看有关该主题的 WWDC 2012 视频。三个 1 小时的视频教会了我将应用迁移到自动布局所需的所有知识。
【讨论】:
如果您的主要问题是新的屏幕尺寸,请确保添加 Default-568h@2x.png。 您的应用需要这张 640 × 1136 的图像才能利用 iPhone 5 的全屏。
也用
[[UIScreen mainScreen] applicationFrame]
获取当前屏幕的宽度和高度。不要硬编码 320 宽 480 高。
CGRect aFrame = [[UIScreen mainScreen] applicationFrame];
width=aFrame.size.width; height=aFrame.size.height;
【讨论】:
单独的 xib 文件:是的,是可能的方法之一。
自动布局:http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
(谷歌第一击)。
【讨论】:
我修改了我的应用程序以包含自动布局。老实说,如果我能更主动一些,我会在设计它们时就考虑到新的屏幕尺寸——我不会再犯这样的错误了!
你如何处理它实际上取决于你如何设计你的原始应用程序。
【讨论】:
我发现并将帮助其他人: https://github.com/mindsnacks/UIImage-MSImageNamed568hSupport
使用它,我们可以为 iPhone5 加载 568h 大小的图像(如果存在 o.w)。加载普通图片很有帮助...
例子:
#import "UIImage+MSImageNamed568hSupport.h"
.
.
IBimgViewBG.image=[UIImage ms_imageNamed568hSupport:[NSString stringWithFormat:@"sample.png"]];
.
.
注意:在你的项目中包含这些图片
sample.png // for earlier versions
sample-568h.png // for iphone5
【讨论】: