iOS狀態(tài)欄(UIStatusBar)

1.設(shè)置啟動頁的狀態(tài)欄樣式

進(jìn)入Xcode的Targets->General->DeploymentInfo->Status Bar Style,設(shè)置其值為Default時,狀態(tài)欄樣式為黑色;設(shè)置其值為Light時,狀態(tài)欄樣式為白色。設(shè)置完成之后info.plist里面的Status bar style值自動改變。


image.png

(在info.plist文件中,找到Status bar style鍵,其值為Gray style (default)時,狀態(tài)欄樣式為黑色;其值為UIStatusBarStyleLightContent時,狀態(tài)欄樣式為白色,作用跟直接在Deployment Info里選擇一樣。)

2.如果設(shè)置info.plist中UIViewControllerBasedStatusBarAppearance為NO,表示不需要控制器自己控制狀態(tài)欄則:

啟動后在AppDelegate中全局設(shè)置狀態(tài)欄樣式

[[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];

如果頁面需要特殊處理UIStatusBarStyleDefault,在viewWillAppear和viewWillDisappear中設(shè)置即可

- (void)viewWillAppear:(BOOL)animated {

    [superviewWillAppear:animated];

    [UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleDefault;

}

- (void)viewWillDisappear:(BOOL)animated {

    [superviewWillDisappear:animated];

    [UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;

}

3.如果設(shè)置info.plist中UIViewControllerBasedStatusBarAppearance為YES,那么需要在控制器里實現(xiàn)preferredStatusBarStyle方法,自己控制狀態(tài)欄,全局設(shè)置無效

- (UIStatusBarStyle)preferredStatusBarStyle{

    return UIStatusBarStyleLightContent;

}

對于導(dǎo)航控制器,需要在分類中實現(xiàn)preferredStatusBarStyle方法來控制導(dǎo)航控制器以及子控制器的狀態(tài)欄


- (UIStatusBarStyle)preferredStatusBarStyle{

    return UIStatusBarStyleLightContent;

}

但是如果子控制器的狀態(tài)欄顯示與UINavigationController分類里設(shè)置的不一致,子控制器即使實現(xiàn)preferredStatusBarStyle方法也不會被調(diào)用,就需要特殊處理

解決辦法:讓UINavigationController實現(xiàn)- (UIViewController *)childViewControllerForStatusBarStyle方法。將頂層的控制器返回。這樣就可以了。

在分類中實現(xiàn)childViewControllerForStatusBarStyle

- (UIViewController*)childViewControllerForStatusBarStyle

{

   returnself.topViewController;

}

然后在每個子制器里自己設(shè)置preferredStatusBarStyle

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

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

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