setNeedsLayout() vs. setNeedsDisplay()
betterhee
2022. 11. 3. 19:41
setNeedsLayout
Main Run loop의 마지막 단계인 Update Cycle에 뷰의 레이아웃(size, position)을 업데이트하는 작업(layoutSubviews
)을 예약한다. 명시적으로 호출해서 예약을 요청하는 것 또한 가능하며 다음과 같은 상황에서 자동으로 트리거된다.
- 서브뷰를 추가할 경우
- 뷰의 크기 변경될 경우
- 스크롤이 발생할 경우
- 디바이스가 회전될 경우
setNeedsDisplay
Main Run loop의 마지막 단계인 Update Cycle에 뷰의 display(text, color, image)를 업데이트하는 작업(draw
)을 예약한다. 명시적으로 호출해서 예약을 요청하는 것 또한 가능하며 다음과 같은 상황에서 자동으로 트리거된다.
- 뷰의 bounds가 변경될 경우