Często potrzebuję wystrzelić sekwencję zdarzeń w wyniku przytrzymania przycisku. Pomyśl o przycisku +
, który zwiększa pole: stuknięcie go powinno zwiększyć go o 1, ale dotknij & przytrzymaj, powiedz: zwiększaj to o 1 co sekundę, aż przycisk zostanie zwolniony. Innym przykładem jest funkcja szorowania podczas przytrzymywania przycisku wstecz lub do przodu w aplikacji typu odtwarzacz audio.Elegancki sposób realizacji naciśnij i przytrzymaj ciągłe wydarzenie zdarzenia?
zwykle uciekają się do następującej strategii:
- Na
touchDownInside
skonfigurować powtarzający czasomierz z moim pożądanym przedziale. - Na
touchUpInside
Podważam i zwalniam licznik czasu.
Jednak dla każdego takiego przycisku potrzebuję osobnej zmiennej instancji licznika czasu, 2 akcji docelowych i 2 implementacji metod. (Zakładam, że piszę klasę ogólną i nie chcę nakładać ograniczeń na maksymalną liczbę jednoczesnych dotknięć).
Czy istnieje bardziej elegancki sposób rozwiązania tego, czego mi brakuje?
'UILongPressGestureRecognizer' z zależnym' UITapGestureRecognizer'. To wszystko. –
duplikat: http://stackoverflow.com/questions/9971241/ios-press-and-hold-gesture-tap –