2011-08-25 37 views
10

Có thể nhận tọa độ chạm tuyệt đối từ [UIPanGestureRecognizer translationInView] không? Tôi đang làm việc trên một ứng dụng iPad và đã tìm kiếm rất nhiều để có được các giá trị phối hợp cảm ứng từ UIPanGestureRecognizer!Chạm vào Tọa độ từ UIPanGestureRecognizer

Tôi đã cũng đã cố gắng bù đắp bằng cách sử dụng các giá trị chúng tôi nhận được từ transaltionInView nhưng tôi không thực sự có thể hiểu toán học đằng sau nó ...

Bất kỳ lời đề nghị chàng trai?

Ravi

Trả lời

17

translationInView là thay đổi delta của một cử chỉ. Nếu bạn di chuyển ngón tay sang trái bằng 20 pt, bạn sẽ nhận được (-20.0, 0.0), nó đã "tuyệt đối" theo nghĩa đó.

Điều bạn có thể muốn nói là bạn muốn locationInView, tương ứng với chế độ xem được trao cho đối số, ngay cả khi chế độ xem được cho là không nhận dạng được sự kiện. Thông thường, bạn sẽ trao chế độ xem của trình điều khiển chế độ xem hoặc chế độ xem sẽ xử lý sự kiện hoặc chế độ xem phụ có ý nghĩa hơn đối với việc triển khai của bạn.

Ngoài ra, cần lưu ý, nếu bạn cần tuyệt đối thực tế, bạn có thể trao nil thông qua các đối số, và nó sẽ trả về nó liên quan đến cửa sổ (aka. "Tuyệt đối")

Và, nếu bạn cần làm logic với các chế độ xem khác, bạn có thể chuyển đổi toạ độ từ chế độ xem này sang chế độ xem khác với các phương pháp thể hiện UIView: convertRect:fromView:, convertRect:toView:, convertPoint:fromView:, convertPoint:toView:. Các phương thức này cũng chấp nhận nil làm đối số xem có nghĩa là "tuyệt đối" đối với cửa sổ.

+0

Tuyệt vời! Tôi hoàn toàn bỏ lỡ điểm rằng những cử chỉ này bắt nguồn từ UIGestureRecognizer! Một lần nữa, xin cảm ơn rất nhiều! – Ravi

+3

Oh BTW, locationInView là những gì tôi đang tìm kiếm ... – Ravi

+4

@Can Theo các tài liệu 'translationInView:' cung cấp cho toàn bộ chuyển động, không phải là chuyển động delta. –

0

Dưới đây là một cách dễ dàng hơn:

gesture.locationInView(myView) 

Trả về điểm tính như vị trí trong một cái nhìn nhất định của các cử chỉ thể hiện bằng các nhận như CGPoint.

+0

Bạn có thể giải thích thêm một chút về điều này và cách nó khác với những gì OP đã thử không? Nó trả về một 'CGPoint'? – sgress454

+0

đã chỉnh sửa nội dung – Esqarrouth

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