在设置内容插入后,iOS7上的UIWebView中的部分黑色背景

时间:2014-01-11 13:36:59

标签: ios iphone objective-c uiwebview

我在iOS7上遇到UIWebView的问题:

首先我要为我的网页视图滚动视图设置内容插入:

[webView.scrollView setContentInset:UIEdgeInsetsMake(40, 0, 0, 0)];

然后,当Web视图加载空白页面时,Web视图底部有一个黑色矩形,其高度为40。

这是肯定的,因为内容插入,我只在iOS7上遇到了这个问题。我怎么解决这个问题?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:12)

试试这段代码,它不是最好的解决方案,但它会摆脱黑色矩形:

[webView.scrollView setContentInset:UIEdgeInsetsMake(40, 0, -40, 0)];

答案 1 :(得分:3)

根据我的经验,iOS7 UIWebView在使用自定义插入内容和内容大小时效果不佳。它总是在某些条件下破裂。我们将webview用于富文本编辑器,因此我们必须管理不稳定的contentEditable="true" webview。

我们最终做的是从UIWebDocumentView获取UIWebBrowserView / UIWebScrollView(我们称之为“内部视图”)并将其作为子视图添加到我们的滚动视图中拥有。为了安全地执行此操作,我们迭代webView.scrollView的子视图,并获取其类名称具有UIWeb前缀的子视图。 (你必须记住iOS6 UIWebScrollView也包含阴影。)

现在您必须管理您的滚动视图。我们所做的是观察内部视图的frame属性的更改,并相应地更新scrollview的内容。