안녕하세요. 피더입니다.
오늘은 Layout Update에 대해 알아보도록 하겠습니다.
Update Cycle
업데이트 주기는 앱이 모든 이벤트 처리 코드를 실행 한 후 컨트롤이 기본 실행 루프로 돌아오는 지점입니다.
UIView
layoutSubviews()
뷰 및 모든 하위 뷰의 크기와 위치를 업데이트합니다. 이 메소드를 직접 호출하면 안됩니다.
setNeedsLayout()
시스템이 다음 업데이트 주기에 해당 뷰에서 layoutSubviews를 호출하여 업데이트합니다.
layoutIfNeeded()
시스템이 업데이트가 필요한 경우 즉시 layoutSubviews를 호출합니다.
Display
draw(_:)
layoutSubviews 처럼 뷰의 크기와 위치를 업데이트합니다. layoutSubviews는 하위 뷰의 layoutSubvies를 호출하지만 draw는 해당 뷰만 호출됩니다.
이 메소드를 직접 호출하면 안됩니다.
setNeedDisplay()
setNeedLayout과 비슷합니다. 뷰를 실제로 다시 그리기 전에 반환하는 내부 플래그를 설정하고 다음 업데이트 주기에 draw를 호출합니다.
Constraints
updateConstraints()
layoutSubviews 또는 draw 와 비슷합니다.
setNeedsUpdateConstraints()
시스템이 다음 업데이트 주기에 updateConstraints를 호출하여 제약조건을 업데이트합니다.
updateConstraintsIfNeeded()
layoutIfNeeded와 비슷합니다. 업데이트 플래그를 확인하여 업데이트가 필요할 경우 즉시 업데이트합니다.
'iOS Development' 카테고리의 다른 글
Extension 에서 Override 하기 (1) | 2017.12.08 |
---|