2010-07-18 4 views
0

iPad에서 회전과 함께 악몽을 꾸고 있습니다. 나는 그 곳 곳곳에서 자습서를 찾아 보았지만, 내가 원하는 것에 대해서는 아무 것도 보이지 않는다. (아마도 옳은 것을 찾지 못했을까요?)ipad 응용 프로그램에서보기 회전 및 크기 조정 요소에 문제가 있습니다.

저는 기본적으로 세로보기가 있습니다. 이는 이미지와보기 내의 버튼입니다. 회전 할 때 풍경인지 알 수 있습니다. 그런 다음 화면에 잘 맞게 uiview의 프레임 크기를 설정하려고합니다.

자동 크기 조정을 사용하면 화면이 늘어나고 채워집니다. 나는 이것을 원하지 않는다. 하지만 문제는 크기를 조정할 때 버튼의 크기가 너무 커지지 만 이미지와 같은 비율은 아닙니다.

제 질문은보기의 크기를 조정하는 가장 좋은 방법입니다. 나는 단순히 60 %의 말로 uiview를 줄이기를 원했고 동일한 60 %로 그 뷰에서 모든 것을 크기를 조정합니다. 내가보기에는 이것이 두 가지 견해를 만드는 것입니다. 그러나 그 작업과 유지 보수는 두 번입니다!

나는 인터페이스 빌더에서 자동 크기 조정 화살표를 망쳐 놓으려고했으나, 다시 생각해볼 수 있습니다.

나는 완전히 여기에서 길을 잃었다! 모든 정보 주셔서 감사합니다

답변

1

거기에 문제가 있다는 것은 화면 비율에 맞게 화면 크기가 자동으로 조정된다는 것입니다. 세로 방향의 iPad에서는 화면 크기가 1024x768입니다. 가로로 회전 한 후에는 원점도 회전하고 화면 내용이 768x1024로 비뚤어 지거나 늘어납니다. 당신이해야 할 일은

는 회전 뷰의 UIViewController

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration

메시지를 무시하는 것입니다. 이 메시지는 순환 게재의 애니메이션 블록 내에서 호출됩니다. 하위 뷰 (버튼)의 프레임 크기를 가장 적합한 것으로 설정하면됩니다. OpenGL보기를 회전 할 때 문제가 발생했습니다. 풍경으로 회전 할 때보기의 내용이 늘어났습니다. 애니메이션 블록 내에서 OpenGL 행렬을 변경할 수 없기 때문에 내가 찾은 유일한 해결책은 뷰를 2 차로 만들고 화면의 경계 (원점 -x 방향)를 원점으로 설정하는 것이 었습니다. 화면의 중앙에 뷰포트를 유지하려면 가로 모드에서 화면 위 (원점 방향) 경계 위의 원점을 재설정하려면 메시지를 재정의해야합니다. 그렇게하면 시야가 그 비율을 유지했습니다. 어떤 솔루션이 최선인지,이 메시지를 재정의하는 것이 효과적 일 것입니다.

0

UIView에서 autoresizesSubviews 속성을 사용 중지 해 보셨습니까? 보기의 크기를 조정할 때 하위보기의 크기가 변경되지 않도록해야합니다.

관련 문제