昨天下了把手机升级成了IOS7 正式版,然后下了最新的xocde5. 试着编译了一下刚刚完成的几个应用,还好问题不大,半个小时的时间都适配好了,然后改了下几个新出现的warning。过几天等空了,要把IOS7的更新的特性好好看一下 http://www.cocoachina.com/newbie/basic/,记录一下。
Xcode5 正式版的下载地址:http://adcdownload.apple.com/Developer_Tools/xcode_5/xcode_5.dmg 建议用迅雷下,速度还是挺快的。
总结一下(不一定是最好的方法,纯粹是省时间的方法,不至于在ios7的设备上看上去错位,想要充分符合ios7的风格,还是要在设计上做出一定的改变的):
(1)如果应用程序始终隐藏 status bar 那么恭喜呢,你在UI上需要的改动很少很少。
(2)如果应用程序显示status bar,可以讲status bar设置成黑色不透明 ,然后在UIViewController 中加入下面的判断,
#define IOS7_OR_LATER ( [[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending )
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
if ( IOS7_OR_LATER )
{
self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = NO;
self.modalPresentationCapturesStatusBarAppearance = NO;
}
#endif // #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
(3)如果勾选了Hide during application lauch 的话,在IOS7 的设备上,是没有问题的,
启动完以后status bar 会重新出现的,但是在IOS7 一下的设备,需要在launch didfinish 里面把status bar 显示出来。
(4)可以通过设置view的背景颜色来改变 status bar 的颜色来搭配你的nav 条。
(5) 有些地方肯能要对版本进行判断,分别做不同的处理。
(6) 可以用旧版的sdk来编译,这样在真机上还是和原来一样的效果。具体的方法可以参考:http://github.kimziv.com/blog/2013/09/22/how-to-use-older-base-sdks-in-xcode5/