2011-11-28 3 views
0

뷰 자체가 뷰 클래스와 XIB 인터페이스를 사용하는 뷰 컨트롤러가있어서 뷰가 코더에서 초기화됩니다. 이 뷰 컨트롤러에서 슬라이더를 움직이면 직사각형이 다시 그려지고 초기 상태 사각형은 전체 화면으로 이동하고 슬라이더를 왼쪽으로 움직이면 직사각형의 크기가 비례하여 작아집니다 (전체 화면에서 4 픽셀의 연속 10x14 간격). "슬라이더가 값을 변경했습니다."새로운 사각형 크기를 설정하는 일부 메서드를 호출하면 "setNeedsDisplay"메서드가 전송됩니다. 그리고 "setNeedsDisplayInRect :"메서드로 변경하면 화면에 필요한 모든 것을 업데이트하지 않고 일부 아티팩트가 있습니다. 하지만 디버깅을 통해 원하는대로 업데이트됩니다.setNeedsDisplayInRect의 올바른 사용 : 애니메이션 용 메서드

redrawRect=CGRectUnion(oldRect, newRect); 
[cView setNeedsDisplayInRect:redrawRect]; 

및 일부 다른 이야기와 같이 업데이트 할 직사각형을 보내려고했습니다. 내 질문은 "setNeedsDisplayInRect :"에서 보낼 사각형입니다.

그리고 두 번째 질문은보다 부드러운 애니메이션과 적은 비용으로 모든 이야기를 어떻게 가속화/최적화 할 수 있습니까?

답변

0

이미 문제가 해결되었습니다. 1. "setNeedsDisplayInRect :"메서드는 포인트를 사용하며 생각한 것처럼 픽셀을 사용하지 않습니다.