Tôi có một kịch bản mà tôi có hai UITableViews như là một subview trong một UIView chính:Giới hạn UITableView panning tới 1 ngón tay
UIView (frame = toàn màn hình)
+ --- UITableView (frame = ~ 1/3 của màn hình)
+ --- UITableView (khung = giây ~ 1/3 của màn hình)
Tôi muốn phát hiện ba ngón tay vuốt lên trên toàn bộ vùng màn hình (và cũng cho phép người dùng xoay UITableViews lên và xuống với ít nhất một ngón tay).
Tôi có UISwipeGestureRecognizer được đính kèm với UIView với numberOfTouchesRequired = 3
.
Tôi đã thử sau đây:
- Thiết cả UIPanGestureRecognizers nội
maximumNumberOfTouches
-1 trên cả UITableViews. Để hiểu biết của tôi, điều này sẽ ngăn chặn hai và ba ngón tay chảo trên UITableViews nhưng nó không. (Nếu tôi đặtenabled
thành NO trên các UIPanGestureRecognizers này, các chạm được chuyển chính xác đến superview. Nhưng sau đó việc di chuyển/cuộn không hoạt động.) - Gọi
panGestureRecognizer requireGestureRecognizerToFail:
với sốUISwipeGestureRecognizer
trên cả UITableViews. Điều này làm việc một phần, nhưng panning chờ đợi cho đến khi swipe đã không được hoàn thành và nó cảm thấy rất vụng về. - Ghi đè UITableView với cài đặt
shouldRecognizeSimultaneouslyWithGestureRecognizer:
để trả về CÓ, cho phép tôi phát hiện thao tác vuốt ba ngón tay. Tuy nhiên, UITableViews bên dưới pan/cuộn lên vô ý.
Vậy làm cách nào để giới hạn số lần chạm panning thành 1 (hoặc 2) và để UISwipeGestureRecognizer ba ngón tay nhận ra ba lần vuốt ngón tay?