我在iOS應用程序的響應器事件鏈中遇到了問題。在子視圖作用於子視圖後,阻止接收觸摸事件的父視圖
問題是,我在一個更大的視圖(方形)上有一組子視圖(氣泡),我希望能夠顯示某個視圖,如果我點擊按鈕,但是如果我點擊其他地方我想要隱藏相同的觀點。
問題是當我點擊一個泡泡時,兩個視圖(孩子和父母)都觸發了,我該如何防止這種情況?
如果孩子已經對觸摸事件採取行動,那不應該是它的結束?
我的氣泡被識別與UITapGestureRecognizer敲擊手勢而父視圖(正方形)使用的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");
}
for Square
@implementation Square
...
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"square touched, lets hide the view");
}
一個點擊後,我看到控制檯
請包括包括 –
@ LithuT.V代碼示例!我想我也可以改變Square來使用手勢識別器的點擊,但是有沒有辦法阻止事件從bubble傳遞到nextResponder? – perrohunter