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

当用户单击透明区域时(我可以在没有alpha信息的情况下构造透明区域),我希望透明区域下方的视图(相同类)可以检测触摸。

我的策略是让视图在用户触摸透明区域时忽略触摸,并希望其下方的视图能够自动捕获触摸事件。但是我不确定这是否行得通。 (进行设置以进行测试将需要一些时间)

我应该采用其他方法还是上述策略行得通?

谢谢。

最佳答案

尝试覆盖超级视图中的方法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是测试子视图是否要捕获事件的地方。

关于iphone - 忽略触摸事件,让它下面的 View 处理触摸吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4530384/

10-15 05:25