UIWebView的_UIWebViewScrollView

时间:2013-02-14 19:23:33

标签: ios uiwebview

我创建了一个名为UIWebView的{​​{1}}实例。我使用loadHTMLString中的内容填充myWebView,添加了几个UIImageViews和UIViews。它按预期工作:UIImageViews和UIViews都位于webview的html字符串内容之上。

然后,我使用myWebViewmyWebView归档并取消归档NSKeyedArchiver。取消存档后,只有html字符串内容可见。所有其他UIViews和UIImageViews都被移回了。所以它们不可见。存档之前和取消存档之后的NSKeyedUnarchiver的NSLog显示,有一个_UIWebViewScrollView从子视图中的第一个对象移动到最后一个对象。请注意,只更改了_UIWebViewScrollView顺序。

不确定它是否是由SDK设计的,但要恢复视图顺序并使其正常显示,我这样做了:

myWebView.subviews

问题:这样做会违反Apple的任何规则,因为我不确定如果将_UIWebViewScrollView视为Apple的私有内容。但是因为我没有触及_UIWebViewScrollView。

1 个答案:

答案 0 :(得分:0)

嗯,就规则而言,你很好。

但是:由于UIWebViewScrollViewUIWebView的内部成员,如果他们在不同的iOS版本中更改了UIWebView的工作方式,那么您的代码可能会搞砸。

要在更安全的一面播放它,你应该尝试在你添加的每个子视图上设置标签,然后执行:

[myWebView bringSubviewToFront:[myWebView viewWithTag:100]];
[myWebView bringSubviewToFront:[myWebView viewWithTag:101]];
[myWebView bringSubviewToFront:[myWebView viewWithTag:102]];
... etc (remember to use the tags that you used for your subviews)

另一方面,弄乱UIWebView可能会导致以后遇到麻烦,可能还有其他方法可以完成你想要做的事情,风险较低的方式