2012-05-05 17 views
14

Câu hỏi nhanh: làm cách nào để phát hiện xem trình nhận dạng cử chỉ có nằm trong chế độ xem phụ của chế độ xem mà nó được thêm vào không? Ví dụ. nếu tôi nhấp vào một đối tượng chẳng hạn như hình vuông đã được thêm làm chế độ xem phụ vào nền mà trình nhận dạng cử chỉ nhấn đã được thêm vào, làm cách nào để phát hiện thấy nó đã được khai thác?Cách phát hiện thao tác nhấn trong các bản xem phụ

+0

Vui lòng cho biết rõ bạn muốn làm gì? muốn nhận ra nhấp chuột vào chế độ xem phụ? –

Trả lời

37

Bạn có thể lấy điểm của vòi khỏi trình nhận dạng cử chỉ khi phương thức xử lý của bạn được gọi tương ứng với bất kỳ chế độ xem nào bạn muốn sử dụng -locationInView:. Sau đó, sử dụng phương pháp sau đây trên UIView: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event để tham chiếu đến chế độ xem phụ thực tế đã được nhấn vào ghi nhớ rằng điểm bạn vượt qua trong cùng một không gian tọa độ với chế độ xem.

Một số mã để giúp bạn bắt đầu:

CGPoint point = [tapGestureRecognizer locationInView:parentView]; 
UIView *tappedView = [parentView hitTest:point withEvent:nil]; 

Đối với hit thử nghiệm để làm việc theo quan điểm cần phải có userInteractionEnabled bất động sản thiết lập để YES. Nhiều chế độ xem, chẳng hạn như UILabel s có cài đặt này theo mặc định là NO. Vì vậy, trước khi ở trên:

self.subviewOfInterest.userInteractionEnabled = YES; 
+0

Cảm ơn bạn, điều đó giúp ích rất nhiều! – Fitzy

+0

Cảm ơn bạn @Brandom –

0

bạn có thể sử dụng requireGestureRecognizerToFail: nhận ra vòi nước trên subview vui lòng tham khảo this đang

13

có lẽ bạn nên thiết lập như: subviews.userInteractionEnabled = YES; chúc may mắn!

+0

Chết tiệt! Đây là những gì tôi cần. Subview của tôi đã bị bỏ qua bởi gestureRecognizer, và bây giờ nó hoạt động. Cảm ơn. – surfrider

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