9

我正在尝试使用设备的整个屏幕在 UIWebview 中显示 pdf,但状态栏和顶部栏除外。到目前为止,我IBOutlet UIWebview *webview;在我的 .h 文件中创建了。我在我的故事板中连接了 webview,并在我的 .m 文件中编写了以下代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];

    webview.scalesPageToFit = YES;
    webview.autoresizesSubviews = YES;
    webview.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
    [webview setBackgroundColor:[UIColor clearColor]];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Chart" ofType:@"pdf"];
    NSURL *targetURL = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
    [webview loadRequest:request];

    [self.view addSubview:webview];

}

pdf 在我的 3.5 英寸显示器中正确显示,但在我的 4 英寸显示器中,底部被切断。当我旋转到横向视图时,这一点更加明显。大约 33% 的屏幕根本没有使用。我怎样才能解决这个问题?我知道它一定与我上面代码中的 UIWebview 尺寸有关webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];

4

4 回答 4

30

一件便宜的事情是设置 webview 的框架覆盖 - (void)viewDidLayoutSubviews

- (void)viewDidLayoutSubviews {
    webView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
}

在这里做的好处是,视图的大小和方向已经在这里确定了,你可以得到一个准确的测量结果。

于 2013-08-31T20:29:48.810 回答
10

使用自动布局

确保未选中“约束到边距”选项,所有约束值为 0:

在此处输入图像描述

您的 webview 是您的主视图的第一个子视图:

在此处输入图像描述

没有自动布局

更改 webview 自动调整连接:

在此处输入图像描述

于 2015-06-04T17:14:50.197 回答
2

在处理 iOS6、7 和不同屏幕尺寸的兼容性问题后,我使用了这个:

- (void)viewDidLoad {
   [super viewDidLoad];

   self.webview = [[UIWebView alloc] init];
   // More setting your webview here

   // Set webview to full screen
   self.view = self.webview;

   [self.webview loadRequest:aRequest]; 
}
于 2014-01-22T09:42:36.463 回答
0

通过选择菜单 Reset to Suggested Constraints下的,我能够让我正常工作。Resolve Auto Layout Issues在此处输入图像描述

于 2017-03-26T21:30:09.660 回答