2009-09-18 3 views
1

뷰 계층 구조가 UIScrollView 인스턴스의 하위 뷰로 있습니다. 뷰 계층 구조는 drawRect를 대체하는 UIView 하위 클래스 인 각 하위 뷰 타일의 가로 행을 둘러싼 래퍼로 간단한 컨테이너 뷰를 사용합니다. 멋진 일은 없어.UIScrollView 하위 뷰가 줌을 사용하여 올바른 경계 치수를 유지하지 않습니다.

온전한 체크로서 각 서브 뷰 타일의 경계, 프레임 및 변환을 에코합니다. 내 놀랍게도 이것들은 확대 도중 변함없이 남아 있습니다! 이것은 줌 시퀀스가 ​​완료된 후에 각 타일을 다시 그리려고하기 때문에 큰 문제입니다. 정확한 치수가 없으면 이것은 불가능합니다.

완전히 잘못된 치수가있는 경우이 타일에서 Quartz를 사용하여 맞춤형 그림을 어떻게 작성해야합니까?

나를 계몽 해 줄 수 있습니까? 감사.

건배,

더그

답변

0

내가 잘못 될 수 있지만 그 단지 논리적 차원이다; 그들은 UIScrollView이 입력 한 변형에 따라 크기가 조정되고 회전되고 변형됩니다. 디스플레이 컨텍스트도 비슷하게 변형되어야하므로 drawRect: 메서드의 경우와 같이 정상적으로 작동해야합니다.

+0

, 나는 오버라이드 (override)의 drawRect에서 self.bounds, self.frame 및 self.transform을 반향하고있다. 이러한 속성의 픽셀 크기가 정확하지 않으면 각 타일의 내용을 올바르게 렌더링 할 수 없습니다. "논리적 차원"이란 무엇을 의미합니까? 테두리, 프레임 및 변형은 화면에 UIView의 위치와 방향을 정의하는 기본 기하 속성입니다. – dugla

0

업데이트

문제가 해결되었습니다. 나는 고려중인 좌표계를 고려하는 것을 잊었다. 수퍼 뷰 프레임/경계/변형을 검사하여 줌 중에 실제로 변경됩니다. 하위 뷰 그리기는 로컬 좌표로 수행 된 다음 부모 변환에 따라 조정됩니다.

여기를 볼 필요는 없습니다. 하위 뷰 "타일"의 각각의 RECT 방법 :

건배,

더그 명확성을 위해

관련 문제