반응형
setNeedsLayout() 및 setNeedsDisplay() 메서드는 UIView 클래스의 메서드로, 뷰의 업데이트와 레이아웃 변경을 예약하는 데 사용됩니다.
- setNeedsLayout():
setNeedsLayout() 메서드는 뷰의 레이아웃을 변경해야 함을 시스템에 알리는 역할을 합니다. 이 메서드를 호출하면 뷰의 레이아웃이 업데이트되어야 한다는 플래그가 설정되고, 다음 레이아웃 사이클 때 해당 뷰의 layoutSubviews() 메서드가 호출됩니다. layoutSubviews() 메서드는 뷰의 하위 뷰의 프레임을 조정하거나 다른 레이아웃 관련 작업을 수행하는 데 사용됩니다. 즉, setNeedsLayout()을 호출하여 뷰의 레이아웃을 변경하고, 이후 layoutSubviews()에서 실제 레이아웃 업데이트를 수행합니다. - setNeedsDisplay():
setNeedsDisplay() 메서드는 뷰의 그리기를 다시 하도록 시스템에 알리는 역할을 합니다. 이 메서드를 호출하면 뷰의 다음 그리기 사이클 때 해당 뷰의 draw(_ rect: CGRect) 메서드가 호출됩니다. draw(_ rect: CGRect) 메서드는 뷰의 콘텐츠를 그리는 데 사용됩니다. 일반적으로 사용자 정의 뷰를 만들 때, setNeedsDisplay()를 호출하여 뷰의 내용을 업데이트하고, 이후 draw(_ rect: CGRect)에서 실제 그리기 작업을 수행합니다.
setNeedsLayout()은 뷰의 레이아웃을 변경하고 layoutSubviews()에서 업데이트를 수행하며, setNeedsDisplay()는 뷰의 콘텐츠를 그리고 draw(_ rect: CGRect)에서 그리기 작업을 수행합니다.
반응형
'iOS > Tip' 카테고리의 다른 글
iOS 16이상에서 TextKit 1을 사용하고자 할때 (0) | 2023.10.22 |
---|---|
Application의 KeyWindow 구하기 (0) | 2023.10.15 |
Left Constraint 와 Leading Constraint 의 차이점 (0) | 2023.05.31 |
Intrinsic Size (0) | 2023.05.31 |
NSCache와 Dictionary로 캐쉬를 구성했을때 차이 (0) | 2023.05.31 |
NSOperationQueue와 GCD(Grand Central Dispatch) Queue의 차이점 (0) | 2023.05.31 |
문자열 메모리 해제시 지우기 (0) | 2023.05.25 |
Frame과 Bounds의 차이 (0) | 2023.05.12 |