Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UIWindow 객체의 역할은 무엇인가? #14

Open
hyesuuou opened this issue Oct 10, 2021 · 3 comments
Open

UIWindow 객체의 역할은 무엇인가? #14

hyesuuou opened this issue Oct 10, 2021 · 3 comments
Assignees
Labels

Comments

@hyesuuou
Copy link
Member

No description provided.

@hyesuuou
Copy link
Member Author

먼저, UIWindow는 뷰 계층구조에서 가장 상단에 고정되어, 뷰를 담는 컨테이너 역할을 합니다. 또, 내부에 포함된 View와 객체들에게 발생한 이벤트를 전달하는 역할을 합니다.
이때 UIWindow 자체에서는 컨텐츠를 보여주지 않고, UIWindow 내부에 포함된 RootViewController에서 컨텐츠를 보여줍니다.

이 외에도 다음과 같은 상황에서 UIWindow 객체를 사용합니다

  • Window의 z축 레벨을 설정해 다른 윈도우의 가시성에 영항을 줄 때
  • Window를 표시하고 키보드 이벤트의 대상으로 만들때
  • 좌표값을 Window 좌표계로 만들때
  • Window의 rootViewController를 바꿀때
  • Window가 표시되는 환경으로 구현할 때

@heerucan
Copy link

앱의 계층 구조에서 최상단에 위치해서 앱의 화면 콘텐츠인 view를 담고 기능적인 부분을 담당하며 이벤트를 발송하는 개체의 배경이다.
상호작용을 처리하고, 좌표계 변환과 Z축 레벨 설정을 담당한다.
자동으로 Xcode가 Window를 제공하는데 최초 프로젝트에서는 스토리보드로 제공하고 앱의 생명주기 초기인 application(*:didFinishLaunchingWithOptions:), scene(*:willConnectTo:options) 에서 생성된다.
만약 스토리보드를 제거한다면 SceneDelegate.swift에서 설정해줘야 한다.

@Taehyeon-Kim
Copy link
Contributor

UIWindow는 앱 UI의 배경임과 동시에 뷰에 이벤트를 보내는 객체이다. UIView의 서브클래스라는 중요한 특징이 있다. UIWindow는 앱의 콘텐츠를 표시할 기본 창을 제공하는데, rootViewController 프로퍼티를 통해서 콘텐츠를 표시할 뷰를 지정할 수 있다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants