长网页在WKWebView中呈现,但底部的一小部分页面甚至无法显示,即使将页面滚动到底部。页面底部无法在WKWebView中显示
看起来页面底部已经不在屏幕上了,因为当我拉起页面而不是释放手指时,我可以看到它。
我该如何解决这个问题?
长网页在WKWebView中呈现,但底部的一小部分页面甚至无法显示,即使将页面滚动到底部。页面底部无法在WKWebView中显示
看起来页面底部已经不在屏幕上了,因为当我拉起页面而不是释放手指时,我可以看到它。
我该如何解决这个问题?
我来回答我自己的问题,因为我发现造成这个问题的原因。
我对Objective-C没有足够的了解,因此在描述我的答案时可能会出现一些小错误。
首先,有在WKWebView
的顶部的默认边距如果属性automaticallyAdjustsScrollViewInsets
设置为true
,也许存在的XCode 8.3的一个bug(一切都进行得很顺利,当我编译代码的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)];