2012-03-24 6 views
1

화면에 그림을 그려 사람들이 간단한 메모를 할 수있는 작은 부분의보기가 포함되어 있습니다. 현재는 터치 포인트를 배열에 저장 한 다음 drawRect에서 점을 연결하여이 작업을 수행합니다. 나는 이것이 이것을하는 가장 좋은 방법이 아니라는 것을 알고있다. 그러나 이것은 나의 애플 리케이션의 단지 작은 부분이다.큰 배열이 아닌 터치 이벤트로 그림 그리기

잠시 후 터치 포인트 배열이 상당히 커지고 성능이 저하 될 수 있습니다.

누군가가 거대한 연결 도트 게임이 아닌 더 나은 방법을 제안 할 수 있습니까? 나는 각 터치에서 생각하고있다. 끝난 이벤트에서 나는 그 터치 동안 그려진 것을 어떻게 든 별도의 드로잉으로 가져와야한다. 배열을 지우지 만 어떻게해야할지 모르겠다.

답변

0

CGMutablePath (또는 UIBezierPath) 속성을 유지하고 추가하십시오. 큰 경로를 만드는 것은 매우 비싸므로 drawRect: 내부에서는 그렇게하지 않아야합니다. 경로를 자주 구성해야하는 경우 하나의 거대한 경로보다 몇 가지 작은 경로를 갖는 것이 일반적으로 저렴합니다.

각 새 경로를 영구적 인 CGLayer에 그려 넣고 drawRect:에 그릴 수도 있습니다. 이것은 덜 유연하지만 고정 된 메모리 및 처리 요구 사항을 갖습니다. contentsCALayer으로 업데이트하면 비슷한 것을 얻을 수 있습니다.