3

我正在开发一个 iPad 应用程序,当用户通过登录表单进行身份验证时,它将以模态方式在 UIWebView 中加载网页。这很好用,但是当我将设备旋转到横向模式时,webview 只覆盖了 75% 的屏幕:

显示问题的屏幕截图

这是我的登录视图控制器中的代码:

    // Load storyboard for easy instatiation of the login view controller
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
    WebViewController *webController =
    (WebViewController *)[storyboard instantiateViewControllerWithIdentifier:@"WebView"];

    // Present the embedded browser in fullscreen.
    [webController setModalPresentationStyle:UIModalPresentationFullScreen];
    [self presentViewController:webController animated:YES completion: nil];
4

3 回答 3

4

您是否使用约束或自动调整大小的蒙版?如果没有,您可能想要使用它们并确保 Web 视图覆盖整个视图的框架。

于 2012-11-28T19:22:50.963 回答
1

你所要做的就是UIWebView-shouldAutorotateToInterfaceOrientation你的WebViewController.

它是这样的,

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

 if(toInterfaceOrientation == UIInterfaceOrientationPortrait)
 {
     webView.frame = CGRectMake (0, 0 768, 1024);
 }
 else 
 {
     webView.frame = CGRectMake (0, 0 1024, 768);
 }
 return YES;
}
于 2012-11-28T18:10:23.897 回答
0
  1. 使用 webView 委托 2.Include 这个方法
    • (void)webViewDidFinishLoad:(UIWebView *)webView { [self.webView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; }
      }
  2. 也包括这个

    • (void)willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation 持续时间:(NSTimeInterval)duration { [self.webView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; }
于 2015-09-15T08:05:19.297 回答