忽略触摸事件,让它下面的视图处理触摸?

时间:2010-12-25 13:24:31

标签: iphone touch

我有一个用户可以触摸的可拖动视图,但是它的某些矩形将没有图像(alpha 0)。

当用户点击透明区域时(我能够构建没有alpha信息的透明区域),我希望透明区域下方的视图(同一个类)能够检测到触摸。

我的策略是让用户触摸透明区域时忽略触摸,并希望下面的视图会自动捕捉触摸事件。但我不确定这是否有效。 (设置测试这需要一些时间)

我应采取不同的方法还是上述策略可行?

谢谢。

1 个答案:

答案 0 :(得分:4)

尝试在superview中覆盖hitTest:withEvent:方法。你可以创建hitTest:withEvent:返回你想要处理给定事件的视图。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    for (UIView *v in self.subviews){
        CGPoint pointInB = [v convertPoint:point fromView:self];
        if ([v someConditionYouMayWantToTestFor]){
            return v;
        }
    }
    return nil;
}

如果您希望子视图捕获事件,则测试someConditionYouMayWantToTestFor方法。