ios7 20像素兼容问题

用Xcode5运行一下应用,第一个看到的就是status bar的变化。在iOS6中,status bar是系统在处理,应用中不需要考虑这部分,iOS7之后是应用在处理,每个ViewController都可以控制status bar。

      iOS7里面的status bar是透明的,会把下面的内容一起显示出来,比如我的应用色调是深色调,希望status bar上的图标是浅色的。那么我需要做两步:

      1. 在info.plist中设置View controller-based status bar appearance为NO

      2. 在AppDelegate.m文件中,didFinishLaunchingWithOptions方法里面增加

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];  

[[UIApplication sharedApplication] setStatusBarHidden:NO];  


   这样,应用中status bar就统一改成了浅色的风格。


   如果你的应用有些viewController中status bar需要特殊设置,那么就需要在相应的viewController中处理,这就需要重写两个API,preferredStatusBarStyle和prefersStatusBarHidden。

-(UIStatusBarStyle)preferredStatusBarStyle  

{  

    return UIStatusBarStyleLightContent;  

}  

- (BOOL)prefersStatusBarHidden  

{  

    return YES;  

}  

然后在需要刷新状态栏样式的时候,调用[self setNeedsStatusBarAppearanceUpdate]方法实现刷新。


另外基于uitableview 貌似还存在问题

http://blog.csdn.net/chengwuli125/article/details/12613897

http://www.cocoachina.com/bbs/simple/?t161353.html

http://blog.csdn.net/chengwuli125/article/details/12613897

http://beyondvincent.com/blog/2013/11/19/122-working-with-ios-6-and-7/#5



你可能感兴趣的:(ios7 20像素兼容问题)