不知何故,無論我遇到的查詢或答案的數量如何,我都找不到一個人可以說使用Swift 3在iOS中設置狀態欄顏色。我已經看到了所有在您添加的建議:狀態欄顏色iOS
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
但事情是,我不希望有一個透明的狀態欄。我想要一個特定的十六進制顏色的狀態欄顏色。
不知何故,無論我遇到的查詢或答案的數量如何,我都找不到一個人可以說使用Swift 3在iOS中設置狀態欄顏色。我已經看到了所有在您添加的建議:狀態欄顏色iOS
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
但事情是,我不希望有一個透明的狀態欄。我想要一個特定的十六進制顏色的狀態欄顏色。
這是關於狀態欄更改的Apple Guidelines/Instruction。只有黑暗&燈(而&黑色)被允許在狀態欄。
這裏是 - 如何更改狀態欄樣式:
如果你想設置狀態欄樣式,應用的水平,那麼設置UIViewControllerBasedStatusBarAppearance
在你的`的.plist」文件NO
。
,如果你婉設置狀態欄樣式,在視圖控制器的水平,那麼請按照下列步驟操作:
.plist
文件中設置UIViewControllerBasedStatusBarAppearance
到YES
,如果你需要在只的UIViewController級別設置狀態欄樣式。在viewDidLoad中添加功能 - setNeedsStatusBarAppearanceUpdate
覆蓋preferredStatusBarStyle在您的視圖控制器。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
集的.plist根據狀態欄樣式設置電平值。
您可以在應用程序啓動或您的視圖控制器的viewDidLoad中設置狀態欄的背景顏色。
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
下面是結果:
「我不希望有一個透明的狀態欄」 真倒黴。它是透明的(在最新版本的iOS中)。一旦你接受了現實,你就可以開始接受解決方法了。 – matt