我有一个用户可以触摸的可拖动视图,但是它的某些矩形将没有图像(alpha 0)。
当用户点击透明区域时(我能够构建没有alpha信息的透明区域),我希望透明区域下方的视图(同一个类)能够检测到触摸。
我的策略是让用户触摸透明区域时忽略触摸,并希望下面的视图会自动捕捉触摸事件。但我不确定这是否有效。 (设置测试这需要一些时间)
我应采取不同的方法还是上述策略可行?
谢谢。
答案 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方法。