View에 관하여.
iOS는 사용자에게 Window와 View를 통해 버튼, 사진과 같은 무언가를 보여준다.
View는 무엇이고, 어떻게 표현할까?
View를 구성 할 때 View를 여러개 사용하여 뷰 계층 구조(View Hierarchy)를 만든다.
부모뷰(Parent View)- 자식뷰(Child View) 혹은 슈퍼 뷰(Super View)- 자식뷰(Sub View)라고 불리는 관계를 만든다.
하나의 View는 부모 뷰가 되고 여러개의 자식 뷰를 가질 수 있다.
subViews를 통해 내가 가진 subView들을 코드를 통해 호출 할 수 도 있다.
let myViews = view.subviews
뷰는 어떻게 그려질까
뷰가 보여질 위치(x,y)와 뷰의 크기를 결정해주면 화면에 보여지게된다.
view의 크기를 지정하는데 frame, bounds가 존재하는데 frame부터 살펴보자.
Frame
애플문서에보면 Frame은 상위 뷰 좌표계에서 뷰의 위치와 크기를 설명하는 사각형이다.
내가 속한 부모 뷰의 x,y 위치에서 얼마큼 떨어져있나를 나타낸다.
Bounds
자체 좌표계에서 보기의 위치와 크기를 설명하는 사격형이다.
내 왼쪽 모서리를 좌표(0,0)으로 인식한다.
50,50 으로 이동 시키면 내가 이동하는게 아니라, 내 안의 자식 뷰들이 (50,50)만큼 이동한다.
스크롤 뷰에서 스크롤 하는 행위가 bounds을 이동시키는 거라고 한다.
정리해보면 이렇다.
View
- 하나의 계층적인 공간
- 하나의 부모 뷰에 여러개의 자식 뷰가 존재함
- subViews로 확인가능함
bounds: 나를 타타내는것
frame: 슈퍼 뷰 내에서 어디있는지 나타내는것
좌표계를 위한 구조체
크기 타입을 사용할 때, CG(Core Graphics)가 붙은 타입들이 있다.
Float,Int,Double이 존재하는데 CGFloat은 무엇일까?
CGFloat이 처음엔 Object-C에서 사용할 수 있게 쓰는 타입인줄 알았는데 cpu가 32비트인지, 64비트에 따라 Float, Double 으로 변경되어서 빌드되는 타입이였다.
- CGPoint
- CGReact
- CGSize
등이 존재한다. 2차원 좌표계를 위한 구조체들이다.
'iOS' 카테고리의 다른 글
combine - 1. Combine에 관하여 (0) | 2022.03.14 |
---|---|
iOS 동시성 (GCD Grand Central Dispatch) 기본 개념 (0) | 2022.02.07 |
3. View의 생명주기 (LifeCycle) (0) | 2022.02.04 |
1. 계산기 코드로 보는 MVC 패턴 (0) | 2022.02.01 |
Stanford iOS 한글자막 강의 - MVC 패턴 (0) | 2022.02.01 |