안녕하세요. 피더입니다.


오늘은 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

+ Recent posts