티스토리 뷰

728x90
반응형

UIStatusBarManager

  • iOS 13 으로 변경됨에 따라 KVC 를 통한 상태바에 대한 접근을 금지하고 있다. 대신 UIStatusBarManager 로 접근 가능합니다.

구현

if #available(iOS 13.0, *) {
            let margin = view.layoutMarginsGuide
            let window = UIApplication.shared.windows.first { $0.isKeyWindow}
            let statusBarManager = window?.windowScene?.statusBarManager

            let statusBarView = UIView(frame: statusBarManager?.statusBarFrame ?? CGRect.zero)
            statusBarView.backgroundColor = color

            view.addSubview(statusBarView)
            statusBarView.translatesAutoresizingMaskIntoConstraints = false

            NSLayoutConstraint.activate([
                statusBarView.topAnchor.constraint(equalTo: view.topAnchor),
                statusBarView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 1.0),
                statusBarView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
                statusBarView.bottomAnchor.constraint(equalTo: margin.topAnchor)
            ])

        }

개발자문서

UIStatusBarManager object 를 사용하여 연결된 scene 에 대한 status bar 의 현재 구성을 가져온다. UIStatusBarManager object 를 직접 만들지 않는다. 대신 UIWindowScene 개체의 statusBarManager 속성에서 존재하는 개체를 검색한다. 이 개체를 통해서 status bar 의 구성을 수정하지 않는다. 대신 각 UIViewController 개체에 대해 status bar 구성을 개별적으로 설정한다. 예를들면 status bar 의 기본 visibility 를 수정하려면 preferStatusBarHidden 속성을 view controller 에서 재정의 한다.

출처

Apple Developer - UIStatusBarManager

728x90
반응형
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
Total
Today
Yesterday