iOS7下Status Bar字體顏色修改


原文來自這里:iOS7下Status Bar字體顏色修改

舊項目在iOS7上遇到status bar字體顏色需要修改的問題,症狀如下:導航欄設置為黑色后,iphone上status bar的字體顏色會自動變成白色,但是在ipad上status bar的字體顏色還是黑色,這樣就看不清楚了。

為了搞清原因,新建了一個Mater-Detail模版工程,觀察了下status bar的顏色變化,如圖:


iphone- default


ipad default

可見默認的,bar是白色透明,status bar上的字體是黑色。然后嘗試把master中的bar修改成黑色不透明:

[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];

[self.navigationController.navigationBar setTranslucent:NO];

然后再觀察:


iphone black


ipad black

這時,iphone上的status bar自動轉換成白色,而ipad上還是黑色。因為只修改了Master的nav bar,所以ipad上看上去有點奇怪。很顯然,iOS7下的status bar是和當前的viewController有關聯的。這讓我一下子想到了Apple的UI Transition Guide:

因此我們有兩種解決方案:

1. 調用 setNeedsStatusBarAppearanceUpdate, 然后實現

-(UIStatusBarStyle)preferredStatusBarStyle;

注意ipad下,window的rootViewController是SpliteViewController,我們需要寫一個SpliteViewController子類,在子類里實現上述方法。

2. 在infoPlist里設置UIViewControllerBasedStatusBarAppearance為NO,然后在代碼里添加:

[application setStatusBarStyle:UIStatusBarStyleLightContent];

 

最后的效果:


ipad 修改

Master部分status bar的字體變成白色了。

以上說明了iOS7下,status bar修改的方法。最重要的一點,就是iOS7下viewController可以調整status bar的式樣,這就要求我們在App設計的時候。注意導航欄的背景色,背景圖片等的使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM