2012-08-28 7 views
0

drawRect 호출에서 전달 된 rect 인수를 어떻게 사용할 수 있습니까? setNeedsDisplayInRect가 전달 될 때마다 특정 영역에 대해 drawRect 메소드가 호출됩니다. 지금은 전체 프레임에 대해 텍스트와 도형을 다시 그려야하며 다시 그려야하는 rect 부분을 제한하지 않고 rect 매개 변수를 얼마나 효과적으로 사용할 수 있는지 전혀 알지 못합니다. 이것에 대한 통찰력이 도움이 될 것입니다.사용자 정의 UIView에서 drawRect 메소드에 rect 인수 사용

답변

0

rect는 다시 그리기 영역입니다. 경우에 따라 UIKit은 뷰의 "더티"영역 만 다시 그립니다. 코드를 최적화하여 CGRectContainsPoint()을 사용하여 일부 직사각형이이 rect 외부에서 발생하는 것을 감지 할 수 있습니다.

+0

CGRectContainsPoint() 대신 CGRectContainsRect()를 사용해야 할 것입니다. 또한 테이블 셀 뷰에 사용되는 경우 성능에 영향을 미칩니다. – Friendtam

+0

문자열에 CGRectContainsRect()를 사용할 수 있습니다. Apple의 셀 드로잉 코드 구현에 따라 속도가 향상 될 수 있습니다. 간단한 새로 고침 및 스크롤 테스트를 수행하고 이점이있는 경우 카운터를 벤치마킹 할 수 있습니다. 제 견해로, 셀에 큰 렌더링이 없으면 성능 향상은 미미합니다. – Resh32

관련 문제