WKWebView无法显示页面底部
The bottom of page cannot display in WKWebView
在WKWebView中渲染了一个很长的网页,但是底部的一小部分页面滚动到底部也显示不出来
页面底部好像在屏幕外,因为我拉动页面不松开手指就能看到。
我该如何解决这个问题?
我来回答我自己的问题,因为我已经找到了造成这个问题的原因。
我对Objective-C的了解不够,所以在描述我的答案时可能会有一些小错误。
首先,如果 属性 automaticallyAdjustsScrollViewInsets
设置为 true
,WKWebView
的顶部有一个默认边距,并且可能存在错误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 )];
在WKWebView中渲染了一个很长的网页,但是底部的一小部分页面滚动到底部也显示不出来
页面底部好像在屏幕外,因为我拉动页面不松开手指就能看到。
我该如何解决这个问题?
我来回答我自己的问题,因为我已经找到了造成这个问题的原因。
我对Objective-C的了解不够,所以在描述我的答案时可能会有一些小错误。
首先,如果 属性 automaticallyAdjustsScrollViewInsets
设置为 true
,WKWebView
的顶部有一个默认边距,并且可能存在错误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 )];