투케이2K

262. (ios/swift) [IOS 15 대응] UIApplication connectedScenes 사용해 상태 바 (statusBar) 높이 및 너비 구하기 본문

IOS

262. (ios/swift) [IOS 15 대응] UIApplication connectedScenes 사용해 상태 바 (statusBar) 높이 및 너비 구하기

투케이2K 2022. 11. 10. 09:43

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [테스트 함수 정의]
    func testMain() {
        print("")
        print("===============================")
        print("[ViewController >> testMain() :: 테스트 함수 수행]")
        print("===============================")
        print("")
        
        
        // [로직 처리 수행]
        DispatchQueue.main.async {
            
            // [현재 연결된 뷰 화면 얻어오기 : IOS 15 대응]
            let scenes = UIApplication.shared.connectedScenes
            let windowScene = scenes.first as? UIWindowScene
            let window = windowScene?.windows.first
            
            
            // [상태 바 높이, 너비 구하기]
            var statusBarHeight: CGFloat = 0
            var statusBarWidth: CGFloat = 0
            
            if #available(iOS 13.0, *) {
                print("")
                print("===============================")
                print("[ViewController >> testMain() :: IOS HIGHT]")
                print("===============================")
                print("")
                
                statusBarHeight = window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
                statusBarWidth = window?.windowScene?.statusBarManager?.statusBarFrame.width ?? 0
            } else {
                print("")
                print("===============================")
                print("[ViewController >> testMain() :: IOS LOW]")
                print("===============================")
                print("")
                
                statusBarHeight = UIApplication.shared.statusBarFrame.height
                statusBarWidth = UIApplication.shared.statusBarFrame.width
            }
            
            
            // [로그 출력 실시]
            print("")
            print("===============================")
            print("[ViewController >> testMain() :: 로그 출력 실시]")
            print("statusBarHeight :: \(statusBarHeight)")
            print("statusBarWidth :: \(statusBarWidth)")
            print("===============================")
            print("")
        }
        
    }
 

[결과 출력]

 

 

반응형
Comments