我有一个用户将触摸的可拖动视图,但是它的某些矩形将没有图像(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/