新創(chuàng)建的工程,默認的status bar style
是default
,即顯示的狀態(tài)欄是黑色的,且默認的hide status bar
為false
骏令,即狀態(tài)欄是不隱藏的。
在開發(fā)過程中垄提,往往我們需要根據(jù)產(chǎn)品設計的需求榔袋,在不同的場景下改變狀態(tài)欄的顯示顏色(黑色.default
或白色.contentLight
)。
狀態(tài)欄隱藏與否Status bar is initially hidden
和顯示樣式Status bar style
都可以在info.plist
里面配置铡俐,配置后應用內(nèi)所有界面的狀態(tài)欄樣式會被統(tǒng)一設置凰兑。配置View controller-based status bar appearance
為NO
則表示狀態(tài)欄樣式受工程配置的控制,其他在控制器里面的設置都是不起作用的审丘,若為YES
吏够,則可以在控制器級別里面對狀態(tài)欄樣式做調(diào)整。
那么滩报,如何在不同的控制器界面設置相應的狀態(tài)欄樣式呢锅知?首先要在info.plist
設置View controller-based status bar appearance
為YES
,然后有以下兩種情況:
情況1: 當視圖控制器沒有導航控制器或有導航控制器且導航欄為隱藏狀態(tài)時脓钾,通過重寫preferredStatusBarStyle
為.contentLight
或.default
喉镰,可單獨改變該試圖控制器的狀態(tài)欄的樣式。
情況2: 當視圖控制器有導航控制器且導航欄不隱藏時惭笑,通過重寫preferredStatusBarStyle
的方式會不起作用侣姆,此種情況下生真,狀態(tài)欄的樣式是根據(jù)導航欄的樣式自動變化的,可通過在該視圖控制器里面捺宗,設置導航欄的樣式navigationController?.navigationBar.barStyle
為.default
或.black
柱蟀,導航欄會顯示為相應的白背景黑title
或黑背景白title
(前提是導航欄的背景和title
的沒有被自定義,自定義后會顯示自定義的結(jié)果)蚜厉,狀態(tài)欄會顯示為黑色文本或白色文本长已。
參考鏈接1