우리가 어떤 View를 만들면 그 설정에 맞추어 알아서 화면을 그려준다. 대체 이 View는 어떻게 그려지는 것일까? 이를 위해 iOS가 View를 놓고 그리는 방식을 알아보자.

Constraints→Layout→Draw

Untitled

iOS에서 View를 그리는 것은 크게 3가지 phase로 나눌 수 있다.

  1. View의 제약조건을 설정한다.
  2. View를 조건에 맞추어서 layout한다.(화면에 놓는다.)
  3. View를 그린다.

만약 다음과 같이 View가 있다고 하자.

Untitled

위의 View의 경우 다음과 같이 제약이 설정되고, 놓이고, 그려진다.

---UPDATE CONSTRAINTS---
ThirdV updateConstraints
SecondV updateConstraints
SecondOfSecondV updateConstraints
FirstV updateConstraints
	//updateViewConstraints in VC
---LAYOUT SUBVIEWS---
FirstV layoutSubviews
SecondOfSecondV layoutSubviews
SecondV layoutSubviews
ThirdV layoutSubviews
---DRAW RECT---
FirstV draw-rect
SecondOfSecondV draw-rect
SecondV draw-rect
ThirdV draw-rect

View의 hierarchy(계층구조)상에서 Leaf→Root순(BottomUp)으로 제약이 설정되고 나머지는 Root→Leaf순(TopDown)으로 layout되고 draw된다.

WWDC18 - High Performance Auto Layout

WWDC18 - High Performance Auto Layout

Constraints과 Auto Layout

Constarints를 이해하기 위해서는 Auto Layout의 개념과 함께 이해하면 좋다.

Auto Layout은 iOS에서 앱을 만들다보면 필연적으로 알게 되는 개념이다. 일단 Layout은 무엇일까?

Layout [명사]

  1. *주로 단수로* (책·정원·건물 등의) 레이아웃[배치]

사전적인 의미로는 “배치”를 의미한다. iOS에서는 View들에 대한 배치라고 이해하면 된다.

iOS에서 Layout을 하는 방법에는 크게 2가지 방법이 있다.