2011-08-29 28 views
14

Tôi có một UIButton bên dưới UIView (trong suốt). Các UIView ở trên có một UISwipeGestureRecognizer thêm vào nó, và đó là mục đích duy nhất của nó - để phát hiện cử chỉ swipe nhất định. Tôi muốn tất cả các chạm khác bị bỏ qua bởi UIView đó, và chuyển sang các chế độ xem khác (chẳng hạn như UIButton bên dưới). Hiện tại, UIView ở trên dường như đang phát hiện vòi nước (ví dụ), không làm gì (vì nó phải là), và không cho phép UIButton bên dưới có cơ hội phản hồi.Làm thế nào để vượt qua một 'vòi' để UIButton là bên dưới UIView với UISwipeGestureRecognizer?

Tôi không muốn triển khai trình nhận dạng vuốt của riêng mình, nếu có thể. Bất kỳ giải pháp/lời khuyên nào? Tôi về cơ bản chỉ muốn biết làm thế nào để nói với một UIView phải chú ý đến chỉ một loại nhất định của công nhận cử chỉ được thêm vào, và bỏ qua (và do đó cho qua các quan điểm phía sau) tất cả các chạm khác.

Trả lời

2

Tôi phải vừa mới tham gia funk hôm qua - tôi đã thức dậy với một giải pháp đơn giản ngay hôm nay. Thêm UISwipeGesture vào một khung nhìn mà là một giám sát cho cả UIView và UIButton. Sau đó, khi xử lý các swipes, tìm ra nơi swipe bắt nguồn, và cho dù đó là điểm trong khung của nơi tôi đã sử dụng để có UIView. (Như tôi đã đề cập, lý do duy nhất cho sự tồn tại của UIView là để xác định một khu vực mục tiêu cho những cử chỉ swipe.)

0

Bạn không thể đặt nút ở trên cùng của chế độ xem và thêm trình nhận dạng cử chỉ vào nút đó?

Cuối cùng, UIButton của bạn kế thừa biểu mẫu UIView qua UIControl. Do đó thực tế không có gì mà bạn có thể làm với một cái nhìn nhưng không phải với một nút.

+0

Không, tôi không thể đặt UIButton phía trên UIView, vì những lý do không liên quan - và tôi không nghĩ sẽ tốt hơn nếu bạn làm như vậy để thử và giải quyết vấn đề này. – danbretl

14

Bạn đã thiết lập:

mySwipeGesture.cancelsTouchesInView = NO; 

cho phép chạm để được gửi đến xem phân cấp cũng như cử chỉ?

Bên cạnh đó, đảm bảo rằng quan điểm trên là:

theTransparentView.opaque = NO; 
theTransparentView.userInteractionEnabled = YES; 

Tôi đã thành công khá tốt gắn cử chỉ để nhìn mẹ mà không cần phải tạo ra một subview trong suốt trên đầu trang cho các cử chỉ. Bạn có chắc bạn cần phải làm điều đó?

0

Trong trường hợp của tôi, tôi đã khắc phục bằng cách không sử dụng nút, mà là một UITapGestureRecognizer. Trình nhận dạng cử chỉ pan của tôi đã được thêm vào chế độ xem nền và cử chỉ nhấn đã được thêm vào chế độ xem phía trên nó.

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