如何在iPhone中以横向模式正确调整webview的大小?

时间:2010-09-25 08:29:11

标签: iphone uiwebview resize landscape

我添加了一个导航栏,一个webview和一个工具栏(从上到下)作为我的viewcontroller视图的子视图。我希望导航栏和工具栏的高度在横向方向上略微收缩,因此我使用autoresizingmask使高度变得灵活。 (UIViewAutoresizingFlexibleHeight将使导航栏和工具栏的高度从44缩小到30左右):

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

现在我发现当我将设备旋转到横向模式时,webview的顶部和底部会有两个空白条(每个空白条的高度为44-30)。导航栏和工具栏似乎位于正确的位置。有没有办法调整webview的大小并填补空白?

2 个答案:

答案 0 :(得分:0)

您确定为webview正确设置了自动调整边距吗?总能做到:

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

不知道这是否有用但值得一试。

答案 1 :(得分: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)];
 }