2010-01-01 3 views
6

자동 회전이 작동하도록 앱을 설정했습니다. tableviewcontrollers 및 tabbarcontrollers와 같은 것들은 코드를 작성할 필요없이 자동으로 크기를 조정합니다. 그러나 장치를 가로로 돌릴 때 크기를 조정하려면 웹보기 등이 필요합니다. 내가 설정 :UIView autoresizingmask가 작동하지 않습니다

webView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

그러나 내가 장치의 크기를 조정하지 않습니다. 이 잘못 구현하고 있습니까?

답변

4

나는 내보기 컨트롤러에 다음을 구현 :

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    [self.webView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
} 

잘 작동하는 것 같다.

+0

나는 그것을 시험해 보았지만 시뮬레이터를 회전시킬 때 호출되지 않는 것처럼 보인다. 나는 거기에 NSLOG를 붙 였고 인쇄되지도 않는다. – john

+1

이것을보기 컨트롤러에 넣으시겠습니까? '-shouldAutorotateToInterfaceOrientation :'과 같은 다른 순환 방식을 재정의하고 있습니까? –

+2

저는 여러분의 솔루션을 사용하고 있으며 적어도 한 번 이상 장치를 회전 시키면 멋지게 작동합니다. 세로 모드에서 내 뷰를로드하는 경우 물론 장치를 회전 할 때까지 화면 크기로 크기가 렌더링되지 않습니다. 뷰가로드되는 순간을 변경하도록 어떻게 설정할 수 있습니까? –

16

나는 마침내 이것을 생각한 것 같습니다. NIB 파일의 루트보기에서는 인터페이스 빌더의 자동 크기 조정 마스크에 대해 유연한 너비와 가변 높이를 지정할 수 없습니다 (적어도 3.2 이상은 아님). 보세요.

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

나는 super 호출 후에 그것을했다 : 당신의 viewDidLoad에 다음 코드를 두는 것은 문제를 해결할 것으로 보인다.

관련 문제