在编写IOS应用程序的过程中,我一直都是使用iPhone Retina(3.5-inch)模拟器测试的,一切显示正常,切图如下:
我在应用开发中,采用的是纯代码实现。公司提供了一部iPhone4s,我使用其测试一切显示正常。 问题出在,当我使用iPhone5和 iPhone5s真机测试时,发现我的应用在iPhone5和iPhone5s上没有铺满屏幕显示画面,而是在应用画面的上下各有一条黑色,截图如下:
检查问题步骤:
一、我开始仔细检查我的代码,发现 在整个工程中,没有一个地方在设置画面高度时候使用了固定值480,都是直接获取屏幕大小,然后再设置画面大小的。
二、检查项目资源,确认已经添加了Default.png、Default@2x.png、Default-568h@2x.png启动图片和其它资源。
三、我开始在网上搜索,查看有没有网友遇到类似的问题,他们是怎么解决的, 而且 尝试了网友提供的各种方法(有说 如果用的有xib,就在xib里面设置一下view的自动布局;如果用的是纯代码,就手动设置UIView的autoLayout,... ),最终都没有结果。
在这个过程中,看到有网友因为这个问题,导致 发布应用的时候被苹果拒绝了。
解决方案:
1、我无意间发现以前我写的Demo可以在 iPhone5s真机上正常显示,我就又新建了一个项目,然后直接运行,显示正常,这时候我内心就激动了。
2、我仔细对比两个项目的异同点,发现“项目配置什么都一样”,内心纳闷,没问题呀。
3、最终发现,一个项目的配置是这样的,截图如下:
之前写的Demo项目配置如下图:
原因 iphone Portrait ios 里面需要R4的启动图片,如果没有对应的启动图片,系统会认为是3.5inch的设备 。就会上下有黑边 只需要把Launch Image是配置成下面这幅图的选项就可以了,具体操作如下图:
。
将准备好的图片拖放到LaunchImage中相应的框中,删除手机上原来的app,Clean工程,重新运行就好了!
附录:
Xcode 6 LaunchImage 载入界面标准大小
iPhone Portrait iOS 8-Retina HD 5.5 (1242×2208) @3x
iPhone Portrait iOS 8-Retina HD 4.7 (750×1334) @2x
iPhone Portrait iOS 7,8-2x (640×960) @2x
iPhone Portrait iOS 7,8-Retina 4 (640×1136) @2x
iPhone Portrait iOS 5,6-1x (320×480) @1x
iPhone Portrait iOS 5,6-2x (640×960) @2x
iPhone Portrait iOS 5,6-Retina4 (640×1136) @2x