WooKoo Blog

물과 같이

개발/개발

iOS - 레이아웃 사이클 및 드로잉 사이클

WooKoo 2021. 3. 29. 22:25

오늘은 레이아웃 사이클과 드로잉 사이클에 대해서 알아보도록 하겠다.

 

먼저 iOS의 레이아웃은 디바이스별로 다양한 해상도와 사이즈가 다르기 때문에 레이아웃을 조정하는 것이 중요하다.

 

레이아웃의 사이클은 3단계이다.

1. 제약 조건(Constraints)

- 오토레이아웃 제약 조건

- 제약 조건의 갱신은 뷰 계층구조에서 하위뷰 > 상위뷰 순서로 

2. 레이아웃(Layout)

- 제약 조건을 바탕으로 갱신

- 레이아웃은 구체적인 뷰의 frame

- 여기서 center와 bounds 결정

- 레이아웃은 뷰 계층 구조에서 상위 > 하위 순서

 

3. 그리기(Draw)

- 레이아웃 단계에서 구한 framedmf coreGraphics 사용하여 화면에 그림

 

드로잉 사이클

드로잉 사이클은 뷰가 처음 화면에 나타나면 시스템이 이 컨텐츠의 snapshot을 찍고 뷰의 내용이 변경되지 않으면 다시 draw를 하지 않는다.

 

뷰가 변경되면 직접호출되지않고 setNeedsDisplay 메서드를 호출하여 다음 사이클에 뷰가 다시 그려질 필요가 있다고 알린다.

 

결론적으로 드로잉 사이클은

1. 현재 뷰 스냅샷 캡쳐

2. 컨텐츠 변경 시 setNeedsDisplay 메서드 호출하여 시스템에게 갱신 요청

3. 다음 사이클이 오면 갱신