변화가 있을때마다 매번 View의 모든 컨텐츠를 다시 그리는 것은 비효율
→ 따라서 iOS의 View는 업데이트할 컨텐츠가 생기면 즉각 그리지 않고 다음 drawing Cycle을 기다렸다가 한번에 그 내용을 그린다!
크게 두 가지 상태로 나눌 수 있다.
Main Run Loop
: 사용자의 터치 이벤트나 뷰의 레이아웃을 인식하는 상태
update Cycle
: Main Run Loop에서 인식한 변경사항을 update 해주는 상태
→ 뷰의 레이아웃을 변경하는 부분에 값이 많이 들기 때문에 update Cycle은 짧게 존재
→ iOS는 초당 60프레임 → update cycle 1/60초
<순서>
1️⃣ View가 화면에 로드되면, 시스템이 UIView에게 draw 메소드를 통해 드로잉을 요청
2️⃣ 시스템은 이 컨텐츠의 스냅샷을 캡쳐하고, 해당 스냅샷을 View의 시각적 표현으로 사용
3️⃣ View의 컨텐츠 변경 시 관련 메서드 호출하여 시스템에 업데이트 요청 (아래서 봅시다!)
4️⃣ Next Drawing Cycle에서 업데이트 요청 받은 뷰를 업데이트
View의 스냅샷을 캡쳐하고 뿌려주는 프로세스를 반복하는 과정!
애플 공식문서에서는 ”View의 실제 컨텐츠가 변경될 때, View를 다시 그려야함을 시스템에게 알리는 것은 당신의 책임입니다” 라고 말하고 있다.
→ 즉 drawing Cycle 중 우리가 컨텐츠가 변화했다는 것을 시스템에게 알려야 반영이 됨!