将触摸事件从 uiview 传输到 uiwebview
Posted
技术标签:
【中文标题】将触摸事件从 uiview 传输到 uiwebview【英文标题】:transmit touch events from uiview to uiwebview 【发布时间】:2010-08-04 17:22:43 【问题描述】:如何在不使用未记录方法的情况下将触摸事件从 uiview 发送到 uiwebview?
我的问题是当用户触摸 uiwebview 时隐藏/显示标签栏和导航栏。这实际上需要自定义不建议的 uiwebview。我打算在 uiwebview 顶部放置一个透明视图,然后从那里接收触摸事件,使用它们,然后将其发送到 uiwebview。为此,我想知道如何将触摸事件从视图发送到 webview。
【问题讨论】:
【参考方案1】:这是完全可能的。您需要将包含 UIWebView 或 UIWindow 的 UIView 子类化,然后中继触摸事件。参考this post。
【讨论】:
【参考方案2】:这似乎是不可能的。您可以使用自定义叠加来捕获触摸事件,但无法调用您自己的 UITouch
事件,也无法更改现有 UITouch
对象的目标视图。
换句话说:只要手指碰到屏幕,创建的触摸事件就会包含目标。之后,它被刻在石头上,webview 永远不会响应它。 (有人请证明我错了!)
接下来最好的事情——我不推荐——是确定页面是否正在滚动,等待
[[browser stringByEvaluatingjavascriptFromString:@"scrollY+scrollX"] intValue];
在循环中变为非零。 Javascript 评估似乎有点慢;至少你不能每秒这样做 10 次。
【讨论】:
以上是关于将触摸事件从 uiview 传输到 uiwebview的主要内容,如果未能解决你的问题,请参考以下文章
将触摸事件从覆盖 UIView 转发到 UIWebView / 如何从代码将触摸事件发送到 uiwebview
如何将触摸事件从 ScrollView 子视图传递到它的父视图
使用后将覆盖 UIView 的触摸事件转发到下面的 UIScrollView