Tôi đang cố gắng thêm 2 UITapGestureRecognizers
vào một chế độ xem, một cho một lần nhấn và một cho các sự kiện nhấn đúp. Bộ nhận dạng đơn chạm đang hoạt động như mong đợi (tự nó). Nhưng tôi dường như không thể làm cho bộ nhận dạng chạm kép hoạt động.
Có cố gắng thử nghiệm với những đặc tính như: cancelsTouchesInView
, delaysTouchesBegan
và delaysTouchesEnded
nhưng vẫn không làm việc.
Khi tôi nhấn đúp, bộ nhận dạng một lần nhấn sẽ luôn được kích hoạt và sự kiện nhấn đúp cũng sẽ được gửi đến chế độ xem siêu. Nhưng bộ nhận dạng chạm kép tùy chỉnh dường như không được thông báo.
Tài liệu dường như gợi ý rằng 3 thuộc tính được đề cập ở trên có thể được sử dụng cho mục đích này. Nhưng tôi chỉ không chắc chắn những giá trị nào nên được đặt và trên (các) bộ nhận dạng nào (đơn, đôi hoặc cả hai). Hy vọng ai đó quen thuộc với điều này có thể giúp đỡ.
Sau đây là khối mã được cập nhật mới nhất.
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}