Saya mencoba menambahkan 2 UITapGestureRecognizers
ke tampilan, satu untuk ketukan tunggal dan satu untuk acara ketuk ganda. Pengenal satu ketuk berfungsi seperti yang diharapkan (sendiri). Tapi sepertinya saya tidak bisa mengaktifkan pengenal ketuk ganda.
Telah mencoba bereksperimen dengan sifat seperti: cancelsTouchesInView
, delaysTouchesBegan
dan delaysTouchesEnded
tapi masih tidak bekerja.
Saat saya ketuk dua kali, pengenal satu ketukan akan selalu diaktifkan dan acara ketuk ganda juga akan dikirim ke tampilan super. Tetapi pengenal double tap kustom sepertinya tidak diberi tahu sama sekali.
Dokumentasi tampaknya menunjukkan bahwa 3 properti yang disebutkan di atas dapat digunakan untuk tujuan tersebut. Tapi saya tidak yakin nilai apa yang harus ditetapkan dan di mana pengenal (tunggal, ganda atau keduanya). Semoga seseorang yang akrab dengan ini bisa membantu.
Berikut ini adalah blok kode terbaru yang diperbarui.
// ****** 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
{
}