iOS狀態(tài)欄操作小結(jié)

找遍了網(wǎng)上一些設(shè)置狀態(tài)欄的方法,沒(méi)有比較全面的,所以自己總結(jié)了一個(gè)
設(shè)置樣式和設(shè)置隱藏的方法基本一致,自行類(lèi)比

iOS6及之前版本

Info.plist表單中設(shè)置 View controller-based status bar appearance字段為 NO(禁用系統(tǒng)自帶的狀態(tài)欄)
在代碼中通過(guò)- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated進(jìn)行控制
這種方法對(duì)狀態(tài)欄的修改是全局的,對(duì)所有視圖控制器都會(huì)生效


iOS7及之后版本

  1. iOS6的方法被不被蘋(píng)果推薦使用,會(huì)報(bào)警告
  2. 在你需要隱藏狀態(tài)欄的視圖控制器類(lèi)中添加這個(gè)方法
    - (BOOL)prefersStatusBarHidden{ return YES; }
    設(shè)置YES就隱藏狀態(tài)欄,設(shè)置NO顯示狀態(tài)欄
    系統(tǒng)會(huì)自動(dòng)調(diào)用這個(gè)函數(shù)
    如果需要更改StatusBar的狀態(tài)的話(huà),可以使用在類(lèi)中添加一個(gè)屬性isStatusBarHidden,在init中初始化為你想要的值,添加這個(gè)方法
    - (BOOL)prefersStatusBarHidden{ return self.isStatusBarHidden; }
    在需要顯示狀態(tài)欄的時(shí)候調(diào)用
    self.isStatusBarHidden = NO; [self setNeedsStatusBarAppearanceUpdate];
    在需要隱藏狀態(tài)欄的時(shí)候調(diào)用
    self.isStatusBarHidden = YES; [self setNeedsStatusBarAppearanceUpdate];
    setNeedsStatusBarAppearanceUpdate這個(gè)方法的作用是更新?tīng)顟B(tài)欄,在每次修改狀態(tài)欄設(shè)置或者樣式之后調(diào)用

注意:此方法對(duì)NavigationController無(wú)效,要使其生效可創(chuàng)建一個(gè)NavigationController的類(lèi)別,增加這個(gè)方法
- (UIStatusBarStyle)preferredStatusBarStyle { return [[self topViewController] preferredStatusBarStyle]; }

這個(gè)函數(shù)的返回值默認(rèn)返回nil,此時(shí)系統(tǒng)就會(huì)調(diào)用當(dāng)前viewControllerA的preferredStatusBarStyle函數(shù);如果返回值是另一個(gè)viewControllerB那么系統(tǒng)就會(huì)調(diào)用viewControllerB的preferredStatusBarStyle函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容