3 回答

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
適用于Xcode 10+和Swift 4.2+
這是iOS 7及更高版本的首選方法
在您的應(yīng)用程序中Info.plist,將設(shè)置View controller-based status bar appearance為YES。
在每個(gè)視圖控制器中覆蓋preferredStatusBarStyle (Apple文檔)。例如:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
如果preferredStatusBarStyle根據(jù)視圖控制器內(nèi)部發(fā)生的更改返回了不同的首選狀態(tài)欄樣式(例如,滾動(dòng)位置或顯示的圖像是否為暗),則需要setNeedsStatusBarAppearanceUpdate()在狀態(tài)更改時(shí)調(diào)用。
iOS 7之前的版本,不建議使用的方法
蘋果已經(jīng)棄用了此功能,因此將來會(huì)刪除它。使用上述方法,以便在下一個(gè)iOS版本發(fā)布時(shí)不必重寫它。
如果您的應(yīng)用程序?qū)⒅С衷谀膽?yīng)用程序中Info.plist,請(qǐng)?jiān)O(shè)置View controller-based status bar appearance為NO。
在appDelegate.swift的didFinishLaunchingWithOptions功能,加上:
UIApplication.shared.statusBarStyle = .lightContent
對(duì)于導(dǎo)航控制器
如果您使用導(dǎo)航控制器,并且希望使用每個(gè)視圖控制器的首選狀態(tài)欄樣式并將其設(shè)置View controller-based status bar appearance為YES應(yīng)用程序的info.plist
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
- 3 回答
- 0 關(guān)注
- 885 瀏覽
添加回答
舉報(bào)