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