[iOS][Swift] StatusBar BackgroundColor Customization

Jay·2023년 10월 16일
0

iOS

목록 보기
43/47

iOS 13 이후: statusBarManager 사용하기

iOS 13부터는 UIWindowScene의 statusBarManager 속성을 사용하여 StatusBar의 스타일을 변경할 수 있습니다.

전역으로 스타일 변경:

if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
    windowScene.statusBarManager?.statusBarStyle = .darkContent
}

특정 뷰 컨트롤러에서 스타일 변경:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    if let windowScene = view.window?.windowScene {
        windowScene.statusBarManager?.statusBarStyle = .darkContent
    }
}

iOS 13 이전 버전: UIApplication과 Info.plist 사용하기

iOS 13 이전 버전에서는 StatusBar의 스타일을 변경하기 위해 다른 접근 방식을 사용해야 합니다.

Info.plist:

Info.plist 파일에 UIViewControllerBasedStatusBarAppearance 항목을 NO로 설정합니다. 이렇게 하면 모든 뷰 컨트롤러에 대해 동일한 StatusBar 스타일이 적용됩니다.

UIApplication:

전역 설정 변경:

UIApplication.shared.statusBarStyle = .lightContent

뷰 컨트롤러 기반:

뷰 컨트롤러마다 다른 스타일을 원한다면 UIViewControllerBasedStatusBarAppearance를 YES로 설정하고,
각 뷰 컨트롤러에서 아래의 메소드를 오버라이드합니다.

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
profile
Junior Developer

0개의 댓글