iOS6和iOS7代码的适配(2)——status bar
? ? ? 用Xcode5運(yùn)行一下應(yīng)用,第一個(gè)看到的就是status bar的變化。在iOS6中,status bar是系統(tǒng)在處理,應(yīng)用中不需要考慮這部分,iOS7之后是應(yīng)用在處理,每個(gè)ViewController都可以控制status bar。
? ? ? iOS7里面的status bar是透明的,會(huì)把下面的內(nèi)容一起顯示出來(lái),比如我的應(yīng)用色調(diào)是深色調(diào),希望status bar上的圖標(biāo)是淺色的。那么我需要做兩步:
? ? ? 1. 在info.plist中設(shè)置View controller-based status bar appearance為NO
? ? ? 2. 在AppDelegate.m文件中,didFinishLaunchingWithOptions方法里面增加
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];[[UIApplication sharedApplication] setStatusBarHidden:NO];? ?這樣,應(yīng)用中status bar就統(tǒng)一改成了淺色的風(fēng)格。
? ?如果你的應(yīng)用有些viewController中status bar需要特殊設(shè)置,那么就需要在相應(yīng)的viewController中處理,這就需要重寫(xiě)兩個(gè)API,preferredStatusBarStyle和prefersStatusBarHidden。
-(UIStatusBarStyle)preferredStatusBarStyle {return UIStatusBarStyleLightContent; }
- (BOOL)prefersStatusBarHidden {return YES; }然后在需要刷新?tīng)顟B(tài)欄樣式的時(shí)候,調(diào)用[self setNeedsStatusBarAppearanceUpdate]方法實(shí)現(xiàn)刷新。
? ? ??從iOS7來(lái)說(shuō),status bar是浮動(dòng)在上層的,這樣如果window本身下移20個(gè)pixel,那么也可以完美的顯示。這個(gè)方法在理論上應(yīng)該成立,我努力嘗試過(guò),但沒(méi)有成功,如果有成功的大大請(qǐng)告訴我應(yīng)該怎么做。
? ??
總結(jié)
以上是生活随笔為你收集整理的iOS6和iOS7代码的适配(2)——status bar的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringMVC框架 |自定义类型转换
- 下一篇: iOS7适配问题 UITableVie