原文转自:http://blog.csdn.net/amazingrace/article/details/20144235
iOS6的程序在iOS7上运行时,界面整体上移了20pix,解决的思路有二:一是运行时选择iOS6的SDK,这样在iOS7上界面与iOS6是一样的,步骤看这里,这样的好处是不用动代码,不过从长远看还是要配合iOS7的风格的。二是修改代码。
在根页面viewDidLoad方法里添加如下代码,就是程序运行的第一个界面。
self.navigationController.navigationBar.translucent = NO;
这样界面正常了,但是我用的导航栏的字体颜色变成了黑色,很不好看。
在导航栏第一次出现的页面viewDidLoad方法里添加如下代码,可以把字体颜色修改成白色。
self.navigationController.navigationBar.titleTextAttributes =
[NSDictionary dictionaryWithObject:[UIColor whiteColor]
forKey:UITextAttributeTextColor];
参考语录:
1、
楼主,我要提醒你两点,第一是分别处理IOS6和IOS7就可以解决你的问题了。第二是Constraints属性必须取消,就是不能用,否则在IOS6以下的手机上必然崩溃,这个属于必须取消!因为现在IOS5还是主流!
感谢楼上两位,我取消autolayout之后整个布局表的一塌糊涂,跳了半天调不好
好在两位告知了问题原因,重建一个项目不再使用autolayout了,target也改成ios5,这样就没问题了
参考资料:
http://www.myexception.cn/operating-system/1470796.html
http://my.oschina.net/megan/blog/167500
http://stackoverflow.com/questions/19105766/ios-7-status-bar-collides-with-navigationbar?lq=1
http://stackoverflow.com/questions/18294872/ios-7-status-bar-back-to-ios-6-style/19044681#19044681