Tippen Sie zweimal auf einige spezifische Subviews mit UIGestureRecognizer Unterklasse?
-
29-09-2019 - |
Frage
Ich folgte der Demo-Sitzung des 121 WWDC 2010 (Advanced Gesture Recognition), einen Weg zu finden, alle Verhaltensweisen haben (drehen, skalieren, übersetzen) auf einer anderen Klasse (TransformGestureReconizer) und alles gut geht und tun dies für die Subviews :
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:baseView];
subView1.userInteractionEnabled = YES;
[self addTransformGestureToView:subView1];
}
Hier ist mein Problem: Ich möchte eine Aktion haben, wenn ich doppelt tippen auf einen gewünschten subview.
Wenn ich also ein hinzufügen:
- (void)handleDoubleTap:(UIGestureRecognizer *)gestureRecognizer
Ich kann nicht wählen, die meine Aktion sehen liefert (wie das Ändern des Bildes auf it) Wenn ich auf der Hauptansicht hinzufügen:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
Ich kann nur die Doppel-Tippen auf der Hauptansicht behandeln, aber nicht für die Subviews und kann es nur auf dem TransformGestureReconizer.h
tun, aber dann entscheiden, nicht die Ansicht angezapft (ich glaube, weil Unterklasse von UIGestureRecognizer).
Lösung
ich eine Lösung gefunden:
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[self addTransformGestureToView:subView1];
[self.subView1 addGestureRecognizer:doubleTap];
[doubleTap release];