我正在创建一个视图控制器,它使用在导航栏和状态栏后面滑动的 Web 视图。为此,我将webView.scrollView.contentInset
属性设置为顶部插入64
.
但是,这并不会缩小 Web 视图想要占用的区域量,因此如果页面小于一屏,则底部有 64 px 的空白区域可供滚动浏览。Web 视图是垂直的UIPageViewController
,因此这会破坏分页。有没有办法摆脱这个额外的空间?
我正在创建一个视图控制器,它使用在导航栏和状态栏后面滑动的 Web 视图。为此,我将webView.scrollView.contentInset
属性设置为顶部插入64
.
但是,这并不会缩小 Web 视图想要占用的区域量,因此如果页面小于一屏,则底部有 64 px 的空白区域可供滚动浏览。Web 视图是垂直的UIPageViewController
,因此这会破坏分页。有没有办法摆脱这个额外的空间?
您是否尝试过调整 webview 的滚动视图内容插图之类的方法?例子:
webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0,64, 0)
听起来您需要webView.scrollView.contentSize
将高度调整为 64。您可能需要提供有关它如何在导航栏和状态栏后面滑动的更多信息,以帮助我回答这个问题。我会看一下滚动视图编程指南的这一部分:
更改剪辑到边界。
webView.clipsToBounds = NO;
这将使其内容在其框架之外可见,因此将其框架设置为正常,就在导航栏下方。导航栏将是半透明的,您将在其下方看到其内容。
不要忘记禁用 Web 视图的自动布局!
通过禁用短页面上的滚动,我已经解决了这个问题。基本上,我使用-stringByEvaluatingJavaScriptFromString:
在页面内运行一些 JavaScript,从document.body
最底部元素的底部向下走并计算其位置。(document.body
本身总是至少和视口一样大,所以我看不到它的大小。)然后,回到Objective-C-land,我将它与网络视图的高度(减去插图)进行比较,然后如果它更少,我禁用滚动。这不是一个完美的解决方案,但它涵盖了最严重的症状。
如果有人能提出比这更好的解决方案,我很想听听!不管怎样,我不能把赏金奖励给自己,所以有人会得到它。