iOS UIStatusBar


UIStatusBar 제어

UIViewController 에 preferredStatusBarStyle 프로퍼티가 있음

설정 가능 값은 ‘default’, lightContent ‘default’ 검은 색 글자 보임 lightContent 흰색 글자 보임

override var preferredStatusBarStyle: UIStatusBarStyle {

    return .lightContent

}

숨기고 싶을 때

override var prefersStatusBarHidden: Bool {

    return true

}

animation

var isStatusBarHidden: Bool = false
override var prefersStatusBarHidden: Bool {
    return self.isStatusBarHidden

}

override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
    return .fade
}

변경된 속성을 적용하는 방법

self.setNeedsStatusBarAppearanceUpdate()

//
self.isStatusBarHidden = !self.isStatusBarHidden

UIView.animate(withDuration: 0.3, animations: {
    self.setNeedsStatusBarAppearanceUpdate()
})

안되는데…확인

Info.plist 파일의 내용은 다음과 같이 하여 줍니다.

  • View controller-based status bar appearance : YES

UIApplication.shared.statusBarView?.backgroundColor = UIColor.clear

navigationcontroller 등 안에 있는 VC에서 위처럼 아무리해도 안 바뀜

self.navigationController?.navigationBar.barStyle = .default // .black

iOS 13부터 다~ 달라짐

높이 구하기

let height = view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
,

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다