2013-12-09 11 views
5

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 moim UISwipeGestureRecognizer 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?

Odpowiedz

0

Spróbuj nadrzędnymi canPreventGestureRecognizer: na najwyższym (cały ekran) UIPanGestureRecognizer, wracając NO dla każdej z dwóch tabel widok gest Recognizers.

Chciałbym również spróbować nadrzędnymi canBePreventedByGestureRecognizer: na każdej z dwóch tabel widok gest Recognizers wrócić NO w przypadku najwyższego UIPanGestureRecognizer.

Już jakiś czas temu natknąłem się na podobną sytuację jak ty i nie pamiętam, jak to naprawiłem (projekt już dawno minął), ale wydaje mi się, że pamiętam, bawiąc się wyżej wymienionymi metodami i ostatecznie je zdobywając. pracować.

Powiązane problemy