iOS.Tips - statusBar 改變 style 和顯示隱藏

preferredStatusBarStyle 和 UIApplication

在幾個月前或者更早之前啄踊,本人一直使用

[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];

的方式來設置 statusBar 的顏色效果,但自從出現(xiàn)了下方圖片中的警告后猿涨,果斷替換成用 preferredStatusBarStyle 來設置 statusBar。

iOS 9之后,這樣的方式不適用了

按住 command 點擊方法 preferredStatusBarStyle 查看 API:
preferredStatusBarStyle 和 prefersStatusBarHidden

preferredStatusBarStyle 方法在 iOS 7 就有了。要使用這個方法敌卓,需要在 info.plist 里設置 View controller-based status bar appearance 為 YES,之后在對應的 viewController 內(nèi)設置:

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

preferredStatusBarStyle 會在頁面顯示前瘟檩,或者說在生命周期 viewDidLoadviewWillAppear 方法之前調(diào)用一次抹缕,如果需要在一個 viewController 中動態(tài)改變 statusBarStyle 或者 隱藏/顯示 statusBar( prefersStatusBarHidden ),使用

[self setNeedsStatusBarAppearanceUpdate];

來調(diào)用一次 preferredStatusBarStyleprefersStatusBarHidden墨辛。

preferredStatusBarStyle 和 navigationController

有的同學在 viewController 中寫了 preferredStatusBarStyle卓研,卻沒有調(diào)用,這是因為如果 viewController 有一個 navigationController睹簇,那 viewController 在顯示或者調(diào)用了 setNeedsStatusBarAppearanceUpdate 時便不會進入自己的 preferredStatusBarStyle 方法里奏赘,而是先進入 navigationController 的 preferredStatusBarStyle 中。此時如果需要 viewController 的有效太惠,需要在 navigationController 中加上

- (UIViewController *)childViewControllerForStatusBarStyle {
    return self.topViewController;
}

這樣就會以當前 navigationController.topViewControllerpreferredStatusBarStyle 返回值作為應該顯示的 statusBarStyle磨淌。

preferredStatusBarStyle 和 runtime

其實 preferredStatusBarStyle 與 runtime 結合食用效果更佳(適用于大部分頁面 statusBarStyle 一致,小部分需要調(diào)整)凿渊,這樣就不需要在每個需要調(diào)整的頁面都寫一次 preferredStatusBarStyle梁只,在開發(fā)迭代過程中也會方便很多缚柳,記住 ,DRY 原則搪锣。

總結

歡迎交流~
補充代碼地址秋忙。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市构舟,隨后出現(xiàn)的幾起案子灰追,更是在濱河造成了極大的恐慌,老刑警劉巖狗超,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弹澎,死亡現(xiàn)場離奇詭異,居然都是意外死亡抡谐,警方通過查閱死者的電腦和手機裁奇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麦撵,“玉大人刽肠,你說我怎么就攤上這事∶馕福” “怎么了音五?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長羔沙。 經(jīng)常有香客問我躺涝,道長,這世上最難降的妖魔是什么扼雏? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任坚嗜,我火速辦了婚禮,結果婚禮上诗充,老公的妹妹穿的比我還像新娘苍蔬。我一直安慰自己,他們只是感情好蝴蜓,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布碟绑。 她就那樣靜靜地躺著,像睡著了一般茎匠。 火紅的嫁衣襯著肌膚如雪格仲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天诵冒,我揣著相機與錄音凯肋,去河邊找鬼。 笑死汽馋,一個胖子當著我的面吹牛侮东,可吹牛的內(nèi)容都是我干的午笛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼苗桂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了告组?” 一聲冷哼從身側響起煤伟,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎木缝,沒想到半個月后便锨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡我碟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年放案,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矫俺。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡吱殉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厘托,到底是詐尸還是另有隱情友雳,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布铅匹,位于F島的核電站押赊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏包斑。R本人自食惡果不足惜流礁,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望罗丰。 院中可真熱鬧神帅,春花似錦、人聲如沸丸卷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谜嫉。三九已至萎坷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沐兰,已是汗流浹背哆档。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留住闯,地道東北人瓜浸。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓澳淑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親插佛。 傳聞我的和親對象是個殘疾皇子杠巡,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容