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

时间:2011-08-24 18:09:25

标签: iphone uiwebview youtube touch uigesturerecognizer

我有一个UIView和一个UIWebView。

UIWebView是UIView的子视图。

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

我有一个与父UIView关联的UITapGesture用于单击,例如,如果用户单击整个视图,它将调用A.

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

我该如何解决?

我认为触摸/点按事件应该在一个顺序中,如果单击该按钮,它应该吸收该事件而不再给予UIView。

我还尝试在UIWebView下添加另一个UIView,并将该手势附加到底层视图。但是,它仍然无效。

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

感谢

1 个答案:

答案 0 :(得分:1)

尝试在视图的.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];
}

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