Ich habe Probleme mit der Responder-Kette von Ereignissen in einer iOS-App.Verhindern, dass die Elternansicht ein Berührungsereignis empfängt, nachdem die Kindansicht darauf reagiert
Das Problem ist das Folgende, ich habe eine Reihe von Subviews (Blasen) auf einer größeren Ansicht (Quadrat) und ich möchte eine bestimmte Ansicht zeigen, wenn ich auf die Tasten tippen, aber wenn ich irgendwo anders tippen Ich möchte die gleiche Ansicht verstecken.
Das Problem ist, wenn ich eine Blase klopfen, beide Ansichten (Kind und Eltern) auslösen, wie kann ich das verhindern?
Wenn das Kind bereits auf ein Berührungsereignis reagiert hat, sollte das nicht das Ende sein?
meine Blasen erkennen die Tap Geste mit UITapGestureRecognizer während der Elternansicht (Quadrat) touchesBegan verwendet: Methode
Dieser Graph meine aktuelle Setup mit mehreren Blasen erklärt:
Code:
@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");
}
für Square
@implementation Square
...
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"square touched, lets hide the view");
}
Nach einem Tap sehe ich beide NSLogs auf der Konsole
pls enthält den Code –
@ LithuT.V Codebeispiel enthielt – perrohunter