iphone - 触摸(点击)事件的顺序

标签 iphone uiwebview youtube touch uigesturerecognizer

我有一个 UIView 和一个 UIWebView。

UIWebView 是 UIView 的 subview 。

UIWebView 包含 YouTube 视频,并设置为让视频适合 UIWebView。

我有一个与父 UIView 关联的 UITapGesture,用于单击,也就是说,如果用户单击整个 View ,它将调用 A。

所以,当UIWebView加载youtube视频时,视频顶部有一个按钮等待用户点击播放。但现在如果我单击该按钮,则会播放 youtube,同时也会调用 A。这是我不想要的。

我该如何解决?

我认为触摸/点击事件应该按顺序排列,如果单击按钮,它应该吸收该事件并且不再给 UIView 提供任何信息。

我还尝试在 UIWebView 下添加另一个 UIView,并将该手势附加到底层 View 。然而,它仍然不起作用。

如何让 YouTube 视频上的按钮独立?

谢谢

最佳答案

尝试在 View 的 .m 文件中添加此代码(如果您使用的是 UIView,请对其进行子类化):

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    CGPoint p = [self convertPoint:point toView:webView];
    if ([webView pointInside:p withEvent:event]) {
        return [webView hitTest:p withEvent:event];
    }
    return [super hitTest:point withEvent:event];
}

由于我没有尝试此代码,请告诉我它是否不起作用。处理这种情况的方法仍然有很多。 :)

关于iphone - 触摸(点击)事件的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180191/

相关文章:

html - iframe不显示内容

IPHONE:释放缓存数据

iphone - 在 uitextfield 中滑动

iphone - iPhone 中的 iFrame

html - 带空格的 Swift 本地 html 文件

javascript - 使用jQuery将声音从静音更改为取消静音

java - 使用 javapns 作为推送通知提供者/服务器

ios - 是否可以调整 UIButton 的 titleLabel 的 x,y 位置?

iphone - WebView 与 Safari

javascript - 如何在 iOS 10+ 的网页中播放 HTML5 视频(内联)