728x90
※출처 - 꼼꼼한 재은씨의 Swift: 실전편
iOS의 화면 표현구조
- 모바일 UI는 하나의 스크린에 여러 개의 창을 띄울 수 있는 데스크톱과 달리 항상 하나의 화면만 꽉 차게 띄울 수 있다.
- 다른 프로그램이 실행되면 기존 화면이 내려가고 새 화면을 채운다. -> 윈도우, 뷰 객체 사용
- 윈도우 (Window)
- iOS에서 디바이스의 스크린을 빈틈없이 채우기 위한 객체
- 항상 UI표현 계층의 최상위에 위치
- View의 일종이지만 직접 컨텐츠를 가지지 않고 컨텐츠를 가진 뷰를 내부에 배치하여 화면에 출력하는 역할만 한다.
- 화면이 전환되더라도 윈도우 내부에 배치된 뷰 컨텐츠만 바뀌고 윈도우 객체 자체는 전환되지 않음
- 뷰 (View)
- 컨텐츠를 담아 스크린 상에 표시하고 사용자의 입력에 반응하는 객체
- 윈도우의 일부를 자신의 영역으로 정의
- 컨텐츠를 채워서 스크린에 나타내고 윈도우로부터 전달된 사용자의 입력에 반응하여 그에 맞는 결과 처리
- iOS앱은 최소 하나 이상의 윈도우, 뷰가 존재한다.
- 대부분의 경우 모바일 디바이스의 디스플레이는 하나이므로 하나의 윈도우만 존재하지만 외부 디스플레이가 연결되면 새로운 윈도우 객체가 생성된다.
- 윈도우와 뷰 사이는 ViewController를 통해 연결됨
- ViewController는 View의 계층을 관리하여 윈도우에 전달
- 디바이스에서 발생한 터치 이벤트를 윈도우로부터 전달 받아 처리하는 역할
- 때문에 윈도우는 View를 직접 관리하지 않음.
- 씬 (Scene)
- 스토리보드를 통해 편집하는 뷰 컨트롤러들은 각자 하나씩의 화면을 담당하는데 이를 '씬'이라고 함
- 씬 1개 - 뷰 컨트롤러 1개
- 컨텐츠 뷰 컨트롤러 (Contents ViewController)
- 씬을 담당하여 컨텐츠를 표시하는 뷰 컨트롤러
- 컨테이너 뷰 컨트롤러 (Container ViewController)
- 씬을 표현하는 역할 대신, 다른 뷰 컨트롤러와의 연결 관계를 관리하는 뷰 컨트롤러
- 뷰 컨트롤러를 배치하고 서로 유기적인 관계로 엮이도록 만듬
- EX) NavigationController, TabBarController, PageController
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] 아이폰의 해상도 (0) | 2021.09.18 |
---|---|
[iOS] DispatchQueue (0) | 2021.07.26 |
[iOS] NSClassFromString (0) | 2021.07.05 |
[iOS] translatesAutoresizingMaskIntoConstraints (0) | 2021.06.17 |
[iOS] CAEmitterLayer로 애니메이션 효과 만들기 (0) | 2021.06.15 |
댓글