我在 iOS 应用程序上的事件响应者链遇到问题。
问题如下,我在一个更大的视图(正方形)上有一组子视图(气泡),如果我点击按钮,我希望能够显示某个视图,但是如果我点击其他任何我想要的地方查看隐藏。
问题是当我点击气泡时,两个视图(子视图和父视图)都在触发,我该如何防止这种情况发生?
如果孩子已经对触摸事件采取了行动,那不应该是它的结束吗?
我的 Bubbles 正在使用 UITapGestureRecognizer 识别 Tap 手势,而父视图(正方形)使用 touchesBegan: 方法
这张图用多个气泡解释了我当前的设置:
代码:
@implementation Bubble
...
-(id) initWithFrame: (CGRect) frame {
UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTap:)];
singleFingerDTap.numberOfTapsRequired = 1;
[self addGestureRecognizer:singleFingerDTap];
}
-(void) handleSingleTap {
NSLog(@"Bubble tapped, show the view");
}
广场
@implementation Square
...
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"square touched, lets hide the view");
}
点击后,我在控制台上看到了两个 NSLog