3 回答

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