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ụ
Trả lời
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;
Cảm ơn bạn, điều đó giúp ích rất nhiều! – Fitzy
Cảm ơn bạn @Brandom –
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
có lẽ bạn nên thiết lập như: subviews.userInteractionEnabled = YES; chúc may mắn!
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
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ụ? –