14

我正在创建一个视图控制器,它使用在导航栏和状态栏后面滑动的 Web 视图。为此,我将webView.scrollView.contentInset属性设置为顶部插入64.

但是,这并不会缩小 Web 视图想要占用的区域量,因此如果页面小于一屏,则底部有 64 px 的空白区域可供滚动浏览。Web 视图是垂直的UIPageViewController,因此这会破坏分页。有没有办法摆脱这个额外的空间?

4

5 回答 5

8

您是否尝试过调整 webview 的滚动视图内容插图之类的方法?例子:

    webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0,64, 0)
于 2016-01-07T14:29:42.630 回答
6

听起来您需要webView.scrollView.contentSize将高度调整为 64。您可能需要提供有关它如何在导航栏和状态栏后面滑动的更多信息,以帮助我回答这个问题。我会看一下滚动视图编程指南的这一部分:

http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/CreatingBasicScrollViews/CreatingBasicScrollViews.html

于 2013-07-02T23:29:41.437 回答
1

更改剪辑到边界。

webView.clipsToBounds = NO;

这将使其内容在其框架之外可见,因此将其框架设置为正常,就在导航栏下方。导航栏将是半透明的,您将在其下方看到其内容。

于 2013-07-03T08:02:52.363 回答
0

不要忘记禁用 Web 视图的自动布局!

于 2013-10-14T15:26:38.427 回答
-1

通过禁用短页面上的滚动,我已经解决了这个问题。基本上,我使用-stringByEvaluatingJavaScriptFromString:在页面内运行一些 JavaScript,从document.body最底部元素的底部向下走并计算其位置。(document.body本身总是至少和视口一样大,所以我看不到它的大小。)然后,回到Objective-C-land,我将它与网络视图的高度(减去插图)进行比较,然后如果它更少,我禁用滚动。这不是一个完美的解决方案,但它涵盖了最严重的症状。

如果有人能提出比这更好的解决方案,我很想听听!不管怎样,我不能把赏金奖励给自己,所以有人会得到它。

于 2013-07-04T05:00:33.913 回答