2013-12-09 13 views
5

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 đặt enabled 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?

Trả lời

0

Hãy thử trọng canPreventGestureRecognizer: trên đỉnh (toàn màn hình) UIPanGestureRecognizer, trở NO cho mỗi của hai bảng recognizers xem cử chỉ.

Tôi cũng muốn thử trọng canBePreventedByGestureRecognizer: trên mỗi của hai bảng recognizers xem cử chỉ để trở NO trong trường hợp của topmost UIPanGestureRecognizer.

Tôi đã rơi vào một tình huống tương tự như chính mình một thời gian trước và không thể nhớ tôi đã sửa nó như thế nào (dự án đã qua lâu), nhưng tôi dường như nhớ chơi xung quanh với các phương pháp nói trên và cuối cùng nhận được nó làm việc.

Các vấn đề liên quan