2010-12-13 2 views
3

UIView 서브 클래스 'drawRect: 기능에 문제가 있습니다. 나는 그것에 CGContextDrawRadialGradient()을 사용하고 있습니다. 사용자가 내 UIView를 끌면 그라디언트를 포함하면 유지하는 데 어려움을 겪습니다.drawRect : 속도 및 CGContextDrawRadialGradient (매우 느림)

시간 프로필러를 사용하면 문자 그대로 내 시간의 98 % 이상이 하위 클래스 'drawRect : 메서드에서 사용되었습니다.

첫 번째 : 그래디언트의 정적 이미지를 사용하는 것이 더 빠릅니까? 둘째 : 속도를 높이는 방법이 있습니까? 어떻게 든 그래디언트를 캐시 할 수 있습니까? 그것은 많이 바뀌지 않지만 그 주위의 경로와 교차하는 것은 UIView을 끌 때 변경됩니다.

누군가가 drawRect: 방법으로 모든 CPU주기를 빨지 않게 만드는 방법에 대한 일반적인 가이드를 알고 있다면 정말 좋을 것입니다.

답변

0

동일한 문제가 있습니다. 한 가지 해결책은 작은 그래디언트를 그려 크기를 조정하는 것입니다. 결과는 픽셀 완벽하지는 않지만 빠릅니다.

this answer에 언급 된 아이디어도 참조하십시오.