뷰 계층(View hierarchy)
뷰 계층구조와 서브뷰 관리
- 뷰는 자신의 콘텐츠를 보여줌
- 다른 뷰를 위한 컨테이너로써의 역할도 함
- 하나의 뷰가 다른 뷰를 포함할 때, 두 뷰 사이에 부모-자식 관계가 생성
- 해당 관계에서는
자식뷰는 서브뷰(subview)
로, 부모뷰는 슈퍼뷰(superview)
- 슈퍼뷰와 서브뷰의 관계에서 서브뷰가 불투명할 경우 슈퍼뷰가 서브뷰에 가려짐
- 서브뷰가 반투명할 경우 서브뷰와 슈퍼뷰의 콘텐츠가 서로 섞임
- 만약 하나의 슈퍼뷰에 포함된 두 서브뷰가 서로 겹치게 되면, 나중에 추가된(또는 서브뷰 배열의 끝으로 옮겨진) 서브뷰가 맨 위에 보여지게 됨
- 슈퍼뷰는 하나의 배열 안에 서브뷰를 순서대로 저장
- 두 서브뷰가 모두 반투명할 경우 뒤에 있는 모든 뷰들이 섞여 화면에 보여지게 됨
뷰 계층의 생성과 관리
- 부모뷰.
addSubView(_:)
메서드를 호출
removeFromSuperView()
메서드를 호출
insertSubview(_:at:)
bringSubView(toFront:)
sendSubview(toBack:)
뷰 추가
뷰 삭제
뷰의 좌표계
CGPoint의 x, y와 CGSize의 width, height는 모두 부동소수점 타입인 CGFloat으로 표현
참고: 야곰