2012-04-26 29 views
5

Tôi đã thêm UIView dựa vào TouchesMoved: sự kiện để kéo chạm. Có một báo chí dài, bấm, xoay và pinch nhận dạng cử chỉ đã có mặt trong cùng một bộ điều khiển xem. Tôi đang gặp sự cố trong đó chế độ xem nhận được các sự kiện touchesBegan:touchesEnded: nhưng không di chuyển được.iPhone UIView touchesMoved: withEvent: không được gọi trên UIView với bộ nhận dạng cử chỉ

Vấn đề của tôi có bị chạm vào Không được gọi là do nhận dạng cử chỉ hủy chạm trong chế độ xem? Tôi cũng có một cái nhìn cuộn liên quan. Đó có thể là thủ phạm không?

Nếu tôi không thể sử dụng touchesMoved, đây là cử chỉ gần nhất để thực hiện chức năng "chạm và di chuyển". Là nó chạm hoặc pan nhận dạng cử chỉ?

Cảm ơn sự giúp đỡ của bạn!

Trả lời

13

Cử chỉ theo mặc định sẽ hủy các thao tác chạm vào đối tượng được liên kết khi chúng đang hoạt động. Bạn có thể dừng hành vi này bằng cách đặt thuộc tính cancelsTouchesInView thành NO.

2

Trộn xử lý cảm ứng thô với bộ nhận dạng cử chỉ có thể mang lại những hành vi lạ, ít nhất tôi không thể làm cho nó hoạt động chắc chắn, nó hơi bị bong tróc. Trong trường hợp của bạn, bạn có thể chỉ muốn thêm trình nhận dạng cử chỉ kéo (UIPanGestureRecognizer) vào chế độ xem để xử lý các lần kéo.

Bạn có thể kiểm soát cơ chế mà trình nhận dạng cử chỉ kích hoạt trong các tình huống bằng cách nhìn vào gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer: của UIGestureRecognizerDelegate.

+0

Thêm UIPanGestureRecognizer đã hoạt động! –

+0

Hoàn toàn đồng ý. Chuyển sang bộ nhận dạng cử chỉ đã giải quyết được tất cả các vấn đề của tôi. –

+0

Tôi cũng gặp sự cố với chế độ xem phụ trong UITextField bằng cách sử dụng công cụ UIResponder. Các lĩnh vực văn bản giữ ăn cắp của tôi chạm. Công nhận cử chỉ cố định điều đó. –

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