天天看点

IOS对iPhone6和plus的适配

首先了解下iPhone各个设备的分辨率

iPhone4, iPhone4s 分辨率960*640  长宽比1.5

iPhone5, iPhone5s  分辨率1136*640  长宽比1.775

iPhone6 分辨率1334*750  长宽比1.778

iPhone6+ 分辨率1920*1080  长宽比1.777

由此可见,iPhone4和4s的长宽比是4:3,而iPhone5、5s、6、6+的长宽比可以粗略认为是16:9,是可以等比例缩放的。

再来了解下屏幕像素的宽度

在程序中打印下 [UIScreenmainScreen].bounds.size.width

可以得出不同设备的屏幕像素宽度:

iPhone4/4s/5/5s 320

iPhone6/6plus放大模式  320

iPhone6标准模式 375

iPhone6plus标准模式 414

iOS8提供了2种显示模式:标准模式和放大模式。可以在“设置”的“显示和亮度”中进行修改,在放大模式中屏幕像素宽度都是固定的320,此时界面是等比放大的,而在标准模式中屏幕宽度会变大,此时需要调整界面的各个控件位置来适配新的界面宽度。

如果旧的工程直接跑到这两个模拟器中时,默认是"兼容模式",即系统会简单的把内容等比例放大,显示效果有些模糊但尚可接受。此时App内部获取到的设备分辨率和iPhone5是一样的。

启用高分辨率模式有2个方法:

1.添加大屏的LaunchImage:

在Images.xcassets里,删除旧的LaunchImage组,然后新建LaunchImage组,添加对应高分辨率的图片。

2.添加Launch Screen File

Launch Screen是Xcode6和iOS8新加的功能,它用一个xib文件来作为启动画面。App在旧版iOS(低于ios8)启动时,该属性会被自动忽略,不会造成异常。

首先,点击New File ->iOS User Interface ->Launch Screen,然后在工程设置项里启用它:Launch Screen File

不过这个xib不能关联任何的代码(不能自定义View的Class,不能IBOutlet,不能加Object),可以理解成这个xib就是一张截图,这个方案的好处在于可以使用到Size Classes来针对不同屏幕布局这个xib。

上面两处设置,只要启用任意一个即可让App进入高分辨率模式;但如果两处都没有设置,则App会回退到兼容模式。

两处都设定的话在ios8会走Launch Screen File,在低于ios8 走LaunchImage

LaunchImage的尺寸:

iPhone 6

portrait (@2x)  : 750 x 1334

landscape (@2x)  : 1334 x 750

iPhone 6 Plus:

portrait (@3x)  : 1242 x 2208

landscape (@3x)  : 2208 x 1242

iOS