当你直接在它上面有一个UIView叠加层时,如何处理触摸UIWebView中的链接?

时间:2013-06-11 01:44:56

标签: ios uiview uiwebview uiscrollview overlay

我一直在研究如何使用嵌入在UIScrollView中的UIWebView一段时间,似乎无法轻松解决我的问题。我正在使用UIWebView,因为UITextView虽然允许超链接,但不允许您更改标准蓝色苹果集的链接颜色。

但是使用UIWebView引入了另一个问题:它阻止它嵌入的UIScrollView处理滚动事件,因为UIWebView在它自己的私有实现中处理这些事件。

虽然这允许我使用其嵌入式链接,但UIWebView吸收了触摸事件,当在UIWebView本身内拖动时,该事件不允许我向上/向下滚动。我解决了这个问题,方法是在UIWebView上放置一个透明的UIView覆盖,拦截它接收的触摸事件,并将其作为第一响应者重新签名,以便它们都是子视图的UIScrollView可以适当地处理滚动。

然而,现在,我似乎无法想到解决这个问题的解决方案:我无法点击UIView Overlay下的UIWebView中的链接。 < / p>

将触摸事件转发到透明UIView下面的UIWebView的最佳方法是什么,以便触发我的UIWebView的委托方法'webView:shouldStartLoadWithRequest:navigationType:'用于点击链接?

1 个答案:

答案 0 :(得分:-1)

来自UIWebView API的FYI doc:

  

重要提示:您不应在UIScrollView对象中嵌入UIWebView或UITableView对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆和错误处理。

回到问题,

UIWebView具有名为scrollView的属性,尝试执行:

webView.scrollView.scrollEnable = NO;