Status bar style

Status bar style

一般在 iOS 裡頭,status bar style 可以被分成兩種

  • default
  • lightContent

設定方式

我們可以在 info.plist 做全域的設定,讓整個 app 在執行的時候,都是同樣的 style; 這取決於 View controller-based status bar appearance – YES / NO 若設為 NO,則是整個 app 都會是同樣的 style; 而若設為 YES,就能在個別的 viewController 來做設定。

View controller-base status bar appearance – YES

實作方式是更改 UIViewController 底下的 preferredStatusBarStyle, 而因為它是 { get } 的,所以我們只能透過覆寫的方式來更改:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

UINavigationController 如果你要更改的 UIViewController 是包在 UINavigationController 裡頭的話, 則需要更改的是 UINavigationController 的 preferredStatusBarStyle, 而非是當前的 UIViewController。

動態更改 當我們執行 setNeedsStatusBarAppearanceUpdate(),可以讓系統再去讀一次 preferredStatusBarStyle,並更改狀態; 所以若要做更改的動畫,則可以在 UIView.animated 裡頭執行 self.setNeedsStatusBarAppearanceUpdate()

comments powered by Disqus