반응형

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)에서 그리기 작업을 수행합니다.

 

반응형
Posted by 까칠코더
,