mam scenariusz, gdzie mają dwa UITableViews jako podrzędny w głównym UIView:graniczna UITableView przesuwania do 1 palec
UIView (ramka = pełnym ekranie)
+ --- UITableView (ramka = ~ 1/3 ekranu)
+ --- UITableView (ramka = druga ~ 1/3 ekranu)
Chcę wykryć przesunięcie trzema palcami w górę na całym obszarze ekranu (a także pozwolić użytkownikowi na przesuwanie UITableViewi w górę iw dół za pomocą co najmniej jednego palca).
Mam UISwipeGestureRecognizer dołączony do UIView z numberOfTouchesRequired = 3
.
Próbowałem te:
- Ustawienie obydwu UIPanGestureRecognizers wewnętrzne
maximumNumberOfTouches
do 1 na obu UITableViews. Według mojej wiedzy powinno to zapobiec dwóm i trzem palcom na widokach UITableView, ale tak nie jest. (Jeśli ustawięenabled
na NIE w tych UIPanGestureRecognizers, dotknięcia zostaną poprawnie przekazane do superview.Ale wtedy panoramowanie/przewijanie nie działa.) - Wywołanie
panGestureRecognizer requireGestureRecognizerToFail:
z moimUISwipeGestureRecognizer
na obu UITableViews. Działa to częściowo, ale przesuwanie czeka, aż przeciągnięcie nie zostanie zakończone i będzie bardzo niezdarne. - Zastępowanie UITableView z ustawieniem
shouldRecognizeSimultaneouslyWithGestureRecognizer:
, aby powrócić TAK, co pozwala mi wykryć przesunięcie trzema palcami. Jednak UITableViews pod pan/przewijania w górę niechcący.
Jak ograniczyć liczbę przesunięć dotykowych do 1 (lub 2) i pozwolić trzem palcom UISwipeGestureRecognizer rozpoznać trzy przesunięcia palcem?