UIWebView contentInset底部没有额外的高度

时间:2013-06-28 06:56:12

标签: ios cocoa-touch uiwebview uiscrollview

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

但是,这不会缩小Web视图要占用的区域数量,因此如果页面小于屏幕,则底部有64 px的空白区域可以滚动。 Web视图采用垂直UIPageViewController,因此会中断分页。有没有办法摆脱这个额外的空间?

5 个答案:

答案 0 :(得分:6)

您是否尝试过调整webview的scrollview内容插件?例如:

    webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0,64, 0)

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

更改clipsToBounds。

webView.clipsToBounds = NO;

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

答案 3 :(得分:1)

不要忘记为网络视图禁用Autolayout!

答案 4 :(得分:0)

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

如果有人能提出比这更好的解决方案,我很乐意听到它!无论哪种方式,我都不能将赏金奖励给自己,所以有人会得到它。