TIL 2021.07.03

Tabber·2021년 7월 3일
0

TIL

목록 보기
1/3

iOS의 View 체계

iOS 에서 화면에 애플리케이션의 컨텐츠를 나타내기 위해 윈도우와 뷰를 사용한다.
윈도우는 그자체로 컨텐츠를 표현할 수 없지만, 애플리케이션의 뷰를 위한 컨테이너 역할을 한다.

뷰는 UIView 클래스 또는 UIView 클래스의 하위클래스(Subclass)의 인스턴스로 윈도우의 한 영역에서 컨텐츠를 보여준다. 뷰가 나타낼 수 있는 컨텐츠는 이미지, 문자, 도형 등과 같이 다양하다. 뷰는 또 다른 뷰를 관리하고 구성하기 위해 사용되기도 한다.

뷰는 제스처 인식기(Gesture Recognizer)를 사용하거나 직접 터치 이벤트를 처리할 수 있다. 또한 뷰 계층(View hierarchy)구조에서 부모뷰(parent view)는 자식뷰(child View)의 위치와 크기를 관리한다.

나타내고자 하는 유형의 컨텐츠에 적합한 뷰를 여러 개 사용하여 뷰 계층(view hierarchy) 구조를 구성하고 이를 통해 컨텐츠를 보여주는 것이 좋다. 예를 들어 UIKit에는 이미지, 텍스트 그리고 다른 유형의 컨텐츠를 나타내는 뷰가 포함되어있다.

뷰 계층(View hierarchy)

뷰 계층구조와 서브뷰 관리

뷰는 자신의 컨텐츠를 보여주는 것과 더불어서, 다른 뷰를 위한 컨테이너 역할도 한다. 하나의 뷰가 다른 뷰를 포함할 때, 두 뷰 사이에는 부모-자식 관계가 생성된다. 이 관계에서 자식뷰는 서브뷰(Subview)로, 부모뷰는 슈퍼뷰(Superview)로 불려진다. 부모-자식 관계 형성은 애플리케이션의 시각적 모습과 동작 모두에 영향을 미치게 된다.

  1. 슈퍼뷰와 서브뷰 관계에서 서브뷰가 불투명할 경우 아래 그림과 같이 슈퍼뷰가 서브뷰에 가려진다.

  1. 서브뷰가 반투명할 경우 서브뷰와 슈퍼뷰의 컨텐츠가 서로 섞여 화면에 보여지게 된다.
    그림과 같이 흰색이었던 서브뷰가 슈퍼뷰와 섞여서 연한 보라색이 됐다.

  1. 슈퍼뷰는 하나의 배열 안에 서브뷰를 순서대로 저장한다. 만약 하나의 슈퍼뷰에 두개의 서브뷰가 겹치게 되면, 나중에 추가된(혹은 배열의 끝으로 옮겨진) 서브뷰가 맨 위에 보여지게 된다.

  1. 두 서브뷰가 모두 반투명할 경우 뒤에 있는 모든 뷰들이 섞여 화면에 보여지게 된다.

profile
iOS 정복중인 Tabber 입니다.

0개의 댓글