旧项目适配iphone6和iphone plus

iphone手机屏幕大小和像素:

1.iPhone5/5s    320x568,像素640x1136,@2x

2.iPhone6          375x667,像素750x1334,@2x

3.iPhone6 Plus  414x736,像素1242x2208,@3x

旧的项目在xcode6上运行在iphone6或者iphone6 plus上,界面会被放大,适应iphone6和iphone6 plus的大屏幕。这时,若在项目中输出屏幕的宽高如下:

    CGSize size =[[UIScreen mainScreen] bounds].size;

    NSLog(@"width=%f height =%f",size.width,size.height)

发现输出的值还是320和568,说明编译器只是对app进行的自动拉伸。

那如何才能让app不自动拉伸,输出真正的size?遵循之前适配iphone5一样,还是修改启动画面。但有别于iphone5,现在苹果提供了一个LaunchScreen.xib作为启动页面,因此只要给旧项目添加LaunchScreen.xib即可。方法如下:

File->new->file->User Interface->Launch Screen


这时旧的工程目录下就会增加一个,然后再在项目的targets下设置启动属性,如下图

现在,重新运行项目就能打出对应的size。


接下来就是将项目中的320换成size.width.


如果发现适配太麻烦了,可以把LaunchScreen.xib删掉,再把上图中的Launch Screen File 设成空就换回自动拉伸的效果了。