iOS6和iOS7代码的适配(2)——status bar
? ? ? 用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]方法實現刷新。
? ? ??從iOS7來說,status bar是浮動在上層的,這樣如果window本身下移20個pixel,那么也可以完美的顯示。這個方法在理論上應該成立,我努力嘗試過,但沒有成功,如果有成功的大大請告訴我應該怎么做。
? ??
總結
以上是生活随笔為你收集整理的iOS6和iOS7代码的适配(2)——status bar的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC框架 |自定义类型转换
- 下一篇: iOS7适配问题 UITableVie