UIWindow
정의
- 사용자 인터페이스에 배경을 제공하고, 중요한 이벤트 처리 행동을 제공하는 객체입니다.
- Windows는 자신의 형태(시각적 모습)을 가지고 있지 않지만, 앱 View의 프레젠테이션에 중요합니다.
- 스크린에 나타나는 모든 View는 Window로 묶여 있으며, 각 Window는 앱의 다른 View와 독립적입니다.
- Window는 Viewcontroller를 사용하여 방향 변경을 구현하고, 앱 작동의 기본 요소인 다른 많은 작업을 수행합니다.
- Windwos는 앱의 기본요소이지만, 코드에서 최소한의 방식으로 상호작용합니다.
- UIKit은 대부분 Window 관련된 상호작용을 처리하며, 필요에 따라 많은 객체와 동작하여 많은 앱의 행동을 구현합니다.
- 그러나 다음 조건을 수행한 경우에만 Window를 사용할 수 있습니다.
1, 앱의 콘텐츠에 표시할 기본 Window를 제공해야 합니다.
2, (필요한 경우) 추가 콘텐츠를 표시하기위해 추가 Window를 추가합니다.
- 일반적으로 Xcode는 앱의 기본 Window를 제공합니다.
- 새로운 iOS 프로젝트는 스토리보드를 사용해 앱의 View를 정의합니다.
- 스토리보드는 Xcode템플릿이 자동으로 제공하는 app delegate객체에 window 속성이 있어야 합니다.
- 앱에서 스토리보드를 사용하지 않는 경우에는 해당 window를 직접 추가해야합니다.
UIWindow 객체의 사용
- 사용자의 노력없이 새로운 프로젝트에는 콘텐츠를 표시할 수 있는 메인 Window가 있습니다.
- 대부분의 앱은 기기의 기본화면에 앱의 콘텐츠를 표시하는 하나의 Window만 있으면 됩니다.
- 앱의 콘텐츠를 위한 Window객체를 제공하는 것 이외에도 다음과 같은 몇 가지 작업을 위해 Window 객체를 사용합니다.
- 다른 Window와 관련된 Window 가시성에 영향을 미치는 Window의 z축 레벨을 설정합니다.
- Window를 표시하고 키보드 이벤트의 대상으로 지정합니다.
- 좌표 값을 Window의 좌표계로 변환하거나 그 반대로 변환시킵니다.
- Window의 root View Controller를 변경합니다.
- Window가 표시되는 화면을 변경합니다.
하위클래스
- UIWindow는 하위 클래스를 만들 필요가 거의 없습니다.
- Window에서 구현할 수 있는 종류의 기능은 일반적으로 더 높은 수준의 View Controller에서 더 쉽게 구현할 수 있습니다.
- 하위 클래스로 지정하고 싶은 몇 가지 경우중 하나는 becomeKey( ) 또는 resignKey( ) 메서드를 재정의하여 Window의 Key 상태가 변경될 때 사용자 정의 행동을 구현하는 것입니다.
내용 출처
https://developer.apple.com/documentation/uikit/uiwindow
Apple Developer Documentation
developer.apple.com
https://zeddios.tistory.com/283
iOS ) UIWindow. 그리고 UIView
안녕하세요 :) Zedd입니다. 오늘은 UIWindow와 UIView에 대해서 공부를 해볼거에요. 위 사진들은 UIWindow, UIView라고 검색하면 바로 볼 수 있는 사진들이에요. UIWindow위에 UIView가 올라가 있는 모습을 볼..
zeddios.tistory.com