iphone5适配
转自
需要注意和准备以下工具和资源
1、下载最新版的Xcode4.5
2、让设计提供640*1136像素的启动画面,640*1136分辨率的程序截图
3、由于iphone5使用的A6处理器采用了新的armv7s架构,所以如果你使用了在第三方的静态链接库,需要下载对应支持armv7s的版本。我们由于使用了第三方的数据统计工具Flurry,所以下载更新了Flurry的静态链接库。
4、如果你的显示器分辨率太小,将无法显示完整的iphone5模拟器,可选的解决办法是换个更大的显示器或者把显示器竖起来,另外还有一个简单的办法,可以在启动模拟器后,用快捷键command+3(50%),command+2(75%),command+1(100%),来调整模拟器的显示比例,
具体升级:
升级启动画面,将美术同学提供的640*1136分辨率的启动画面图片,命名为Default-568@2x.png,添加到工程中即可。
升级第三方链接库,这个小hi需要用新的第三方链接库替代以前的即可。如果你使用了例如opencv这种需要自己编译对应版本链接库的开源库,那么替换之前,需要自己先用xcode4.5编译其armv7s版本的静态链接库。
调整xib文件
调整自动扩展的Autosizing方式。
将以前定义的宏定义480替换成[[UIScreen mainScreen] bounds].size.height
调整屏幕Rotation的回调函数
从ios6开始,苹果修改了屏幕旋转的回调函数。在ios6以前,回调函数是
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
现在新的回调函数是:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPressentation {
return UIInterfaceOrientationPortrait;
}
并且,现在是否旋转屏幕是由最上层的view Controller决定,例如,如果你是由UITabBarController或者UINavigationController包起来的界面的话,是否旋转屏幕就由UITabBarController或UINavigationController中的shouldAutorotate回调决定,而默认其返回的是YES。修改方法是给这2个容器Controller增加Addition,将其shouldAutorotate修改成由当前显示的子view Controller决定,或者直接默认返回NO。