我正在创建一个视图控制器,使用一个 WebView,并将其滑动到导航栏和状态栏的后面。为了实现这个目标,我将 webView.scrollView.contentInset
属性设置为具有上边缘偏移量为 64
。
然而,这并没有减少 WebView 想要占用的区域,所以如果页面不足一屏幕高度,它底部会留下 64 像素的白色空间来滚动。WebView 在一个垂直的 UIPageViewController
中,这会打乱翻页的效果。是否有办法去除这个额外的空间?
我正在创建一个视图控制器,使用一个 WebView,并将其滑动到导航栏和状态栏的后面。为了实现这个目标,我将 webView.scrollView.contentInset
属性设置为具有上边缘偏移量为 64
。
然而,这并没有减少 WebView 想要占用的区域,所以如果页面不足一屏幕高度,它底部会留下 64 像素的白色空间来滚动。WebView 在一个垂直的 UIPageViewController
中,这会打乱翻页的效果。是否有办法去除这个额外的空间?
你尝试过像调整Webview的ScrollView内容插图这样的东西吗?示例:
webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0,64, 0)
webView.scrollView.contentSize
并将高度调整为 64。您可能需要提供更多关于它如何滑动在导航栏和状态栏后面的信息,这样我才能回答您。建议查看Scroll View Programming Guide中的此部分:。contentSize
应该只会发生变化,对吗?我该如何确定这一点? - Becca Royal-Gordon更改 clipsToBounds 属性。
webView.clipsToBounds = NO;
UIViewController
在其管理的一个或多个视图上设置了 clipsToBounds=YES
...我不记得是否设置viewController.wantsFullScreenLayout=YES
可以解决这个问题。 - nielsbot别忘了为网页视图禁用自动布局!
-stringByEvaluatingJavaScriptFromString:
在页面内运行一些 JavaScript,从 document.body
开始向下遍历并计算最底部元素的位置。(document.body
本身至少与视口一样大,因此我无法查看其大小。)然后,在 Objective-C 中,我将其与 Web 视图的高度(减去插入)进行比较,如果小于它,则禁用滚动。这不是完美的解决方案,但它可以解决最严重的症状。