Tôi có một UIGestureRecognizer mà tôi muốn làm việc trên hai UIViews khác nhau, cả hai đều trong cùng một hệ thống phân cấp khung nhìn của một UiViewController. Các hành động của UIGestureRecognizer là về giống nhau trên mỗi, vì vậy tôi muốn cho cùng một chức năng được gọi là (nó sẽ, rõ ràng) và tôi sẽ nói lúc chạy mà UIViews tôi đang đối phó với. Nhưng bằng cách nào? Tôi không thể thấy rằng UIGestureRecognizer đang mang thông tin đối tượng với nó. Tôi có thiếu dòng trong tài liệu hoặc không gestureRecognizer không biết đối tượng mà nó đã được gắn vào mà nó đang được gọi là trên? Có vẻ như điểm của ngôn ngữ sẽ là nó sẽ biết.UIGestureRecognizer có biết đối tượng được gọi là gì không?
Ngoài ra, có lẽ tôi đang hiểu lầm mục đích của lớp và tôi không nên:
UITapGestureRecognizer *dblTap =
[[UITapGestureRecognizer alloc] initWithTarget: self
action: @selector(handleDblTap:)];
[viewA addGestureRecognizer: dblTap];
[viewB addGestureRecognizer: dblTap];
và sau đó hy vọng sẽ có thể:
-(void)handleDblTap: (UIGestureRecognizer *)gestureRecognizer
{
if (viewA)...
Nếu trên thực tế UIGestureRecognizer không hỗ trợ được gắn liền với nhiều đối tượng cùng một lúc, sau đó, nếu bạn biết tại sao nó không hỗ trợ điều này, bạn có thể giáo dục tôi không? Cảm ơn đã giúp đỡ.
@NJones là đúng. Một chế độ xem cho mỗi trình nhận dạng. Bạn cũng có thể đặt thẻ cho mỗi trình nhận dạng để tìm ra trình nhận dạng nào được gọi là phương thức đó. –