将触摸事件从覆盖 UIView 转发到 UIWebView / 如何从代码将触摸事件发送到 uiwebview

Posted

技术标签:

【中文标题】将触摸事件从覆盖 UIView 转发到 UIWebView / 如何从代码将触摸事件发送到 uiwebview【英文标题】:forward touch events to UIWebView from overlaying UIView / how to make touch events to uiwebview from code 【发布时间】:2014-07-09 08:55:41 【问题描述】:

想象一个UIWebView 部分被UIView 覆盖,而UIView 本身必须接收触摸。

我要做的就是将触摸事件从覆盖的UIView 转发到UIWebView。我尝试将UIView 子类化并将触摸转发到UIWebView 就像

[webview touchesbegan:touches withEvent: event] 

但它不起作用。

好吧,据我所知,它可以通过子类化 touchesbegan 被调用的 UIWebView 来工作。但是当我直接触摸UIWebview 时,这永远不会发生,所以这显然不是正确的方法。 Sooo,我做错了什么?

【问题讨论】:

感谢格式化我的文本!现在看起来好多了。下次我自己试试…… 我想你也想在 webView 上使用gestureRecognizer。这个 (***.com/questions/1049889/…) 有一些变化。 我会调查它,但我不想捕获整个屏幕,只捕获覆盖 UIView 的部分...... 【参考方案1】:

您可以使用 javascript 来做到这一点

NSString *javaScript = @"document.getElementById('id_username').value = 'tfusername'";

设置任何数据的值 您可以通过获取其 ID 来发送对任何对象的点击 然后通过评估它来发送事件。

NSString *myval =  [webView stringByEvaluatingJavaScriptFromString:@"document.querySelector('input[type=\"submit\"][value=\"Log in\"]').click();"];

可能这就是您所要求的。谢谢

【讨论】:

对不起。我想将本机触摸事件转发到 uiwebview .. 没有 javascript

以上是关于将触摸事件从覆盖 UIView 转发到 UIWebView / 如何从代码将触摸事件发送到 uiwebview的主要内容,如果未能解决你的问题,请参考以下文章

UIView 事件转发无限循环

iOS:如何将触摸事件从子视图转发到超级视图? [复制]

仅将触摸事件转发到被触摸的视图

将触摸事件从 uiview 传输到 uiwebview

被覆盖的 UIControl 或 UIView 如何知道在其上方结束的触摸事件?

将触摸事件从 UIVew 传输到 UIScrollView