2010-09-25 4 views
0

Я добавляю навигационную панель, веб-просмотр и панель инструментов (сверху вниз) в качестве подзонов моего представления viewcontroller. Я хочу, чтобы высота панели навигации и панели инструментов немного уменьшалась в альбомной ориентации, поэтому я использую autoresizingmask, чтобы сделать высоту гибкой. (UIViewAutoresizingFlexibleHeight сделает Панель навигации и высота панели инструментов усадку от 44 до около 30):Как изменить размер веб-представления в ландшафтном режиме в iPhone?

webNavBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin; 
webToolBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin; 
webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

Теперь я обнаружил, что, когда я повернуть устройство в ландшафтном режиме, будет две пустые белые полосы на верхней и нижней части webview (высота каждой пустой панели составляет 44-30). Навигационная панель и панель инструментов находятся в правильном положении. Есть ли способ изменить размер веб-представления и заполнить пробелы?

ответ

0

Вы уверены, что поля Autoresizing установлены правильно для просмотра в Интернете? всегда мог:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    webView.frame = self.view.frame; 
} 

Не знаю, если это будет работать, но стоит того.

+0

Спасибо за ваш ответ, но WebView не полный вид экрана. В любом случае, вы даете мне представление о том, что я могу сбросить его фрейм, чтобы получить правильный размер. –

+1

Убедитесь, что вы также перешли к методу 'super', если вы делаете что-либо в суперклассе. – Rich

0

Проверьте эту ссылку. UIWebView not re-sizing after changing orientation to landscape

Это работает для меня: - Добавьте следующий код в контроллер, который имеет Webview: -

(void)willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    [self.myWebView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
} 
+0

Убедитесь, что вы также перешли к методу 'super', если вы делаете что-либо в суперклассе. – Rich

Смежные вопросы