WKWebView无法显示页面底部

The bottom of page cannot display in WKWebView

在WKWebView中渲染了一个很长的网页,但是底部的一小部分页面滚动到底部也显示不出来

页面底部好像在屏幕外,因为我拉动页面不松开手指就能看到。

我该如何解决这个问题?

我来回答我自己的问题,因为我已经找到了造成这个问题的原因。

我对Objective-C的了解不够,所以在描述我的答案时可能会有一些小错误。

首先,如果 属性 automaticallyAdjustsScrollViewInsets 设置为 trueWKWebView 的顶部有一个默认边距,并且可能存在错误XCode 8.3(我用XCode 8.0编译代码时一切顺利),边距占据了网页的真实部分,所以即使我设置了网页也无法滚动到底部到一个小尺寸。所以将 automaticallyAdjustsScrollViewInsets 设置为 false 将删除 WKWebView 的边距;这是此 属性 的文档:https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin

然后,根据视口高度减去状态栏高度再减去导航栏高度的计算结果来设置WKWebView的高度。

在此处粘贴我的代码:

self.automaticallyAdjustsScrollViewInsets = false;

CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;

CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height;

WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake( 0, statusBarHeight + navBarHeight, self.view.bounds.size.width, self.view.bounds.size.height - statusBarHeight - navBarHeight )];