Ich versuche, UITapGestureRecognizers
einer Ansicht 2 hinzuzufügen , eine für Einzel- und eine für Doppel-Tap-Ereignisse. Der Single-Tap-Erkenner funktioniert wie erwartet (alleine). Aber ich scheine nicht in der Lage zu sein, den Doppelklick-Erkenner zum Laufen zu bringen.
Haben Sie versucht , mit Eigenschaften zu experimentieren wie: cancelsTouchesInView
, delaysTouchesBegan
und delaysTouchesEnded
doch immer noch nicht funktioniert.
Wenn ich zweimal tippe, wird immer die Einzelklopferkennung aktiviert und das Doppelklopfereignis wird auch an die Superansicht gesendet. Der benutzerdefinierte Doppelklick-Erkenner scheint jedoch überhaupt nicht benachrichtigt zu werden.
Dokumentationen scheinen darauf hinzudeuten, dass die 3 oben genannten Eigenschaften für diesen Zweck verwendet werden könnten. Ich bin mir aber nicht sicher, welche Werte eingestellt werden sollen und auf welchen Erkennern (einfach, doppelt oder beides). Hoffe, jemand, der damit vertraut ist, könnte helfen.
Das Folgende ist der letzte aktualisierte Codeblock.
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}