2009-12-05 5 views
1

이것은 실제로 쉽고 실제 바보 같거나 Google google fu가 심각하게 악화 될 수 있습니다. 어쨌든, 순수 CGContext 드로잉, 하위 뷰 (현재는 적어도)를 사용하는 내 앱용 사용자 정의보기를 구현하고 있습니다. 것은이다, 나는 그것을 자동 회전시키고 싶다. 그래서 나는 shouldAutorotateToInterfaceOrientation를 돌려 준다. 그리고 짜잔,보기는 회전한다. 그러나 실제로 그렇게하는 것은 실제로 내용을 다시 그리는 것이 아닙니다 (프레임 워크의 어딘가에있는 텍스처로 렌더링되어 사각형으로 튀어 나오지만 실제로는 관련이 없습니다), rect는 단순히 늘어나서 내용을 찌그러 뜨립니다. 회전하는 동안 더 큰 영역의 그림을 단순히 발행하도록하려면 어떻게해야합니까? 즉, 내 콘텐츠가 화면보다 크고 회전 중에 뷰포트가 변경되기를 바랍니다.사용자 정의 UIView를 자동 회전시킬 때 비율 유지

보기의 contentModeUIViewContentModeRedraw으로 설정하려고했지만 아무 것도하지 않았으므로 autoresizeMask 콘텐츠로 놀아 보았지만 도움이되지 않았습니다. 나는 또한 willRotateToInterfaceOrientationsetNeedsDisplay을 삽입하려고 시도했지만, 새로운 경계를 사용하여 다시 그리기가 발생했습니다 (즉, 먼저 닦은 다음 회전 중에 올바른 크기로 늘리십시오). 보고 싶다.

아무에게도 어떻게 작동시킬 수 있는지 알 수 있습니까?

답변

1

밝혀진 바와 같이, 그것은 바보 같고 쉬운 것입니다. 누군가 언젠가는 그것을 읽으 려한다면 여기에 게시 할 것입니다. 내가 그것을 해결할 수 있었던 방법은 실제로 창과 내 견해 사이의 전망을 샌드위치하고 있었다. (나는 창에서 직접 일할 수 있다고 생각하지만,이 방법으로 더 직관적이라고 느꼈다.) 즉, 필자는 뷰를 자식보기로 추가하여 프레임이라고 부릅니다.

프레임은 정상적으로 크기가 조정되지만 아이 뷰의 크기를 바꾸지 않고보기 영역보다 큰 경우 (실제로는 480x480 크기이므로 전체 화면을 어느 방향 으로든 덮을 수 있음). 문제는 기본적으로 해결되었습니다.

willRotateToInterfaceOrientation 동안 프레임의 뷰 오프셋에 애니메이션을 적용하여 왼쪽 위 모서리가 아닌 중심을 중심으로 회전하는 것처럼 보이도록 놀고 있습니다.하지만 다른 질문입니다.

관련 문제