Trong ứng dụng của tôi, tôi đã thêm Trình nhận dạng cử chỉ mới có sẵn trong SDK 3.2. Mọi thứ dường như hoạt động chính xác và thời gian phản hồi trên màn hình rất nhanh. Nhưng vì một lý do nào đó khi tôi thêm requireGestureRecognizerToFail
vào một số cử chỉ của tôi, có một sự chậm trễ rất rõ ràng khi cử chỉ được kích hoạt. Dưới đây là một đoạn mã mà tôi sử dụng để tạo Trình nhận dạng cử chỉ. Có ai biết tại sao có một sự chậm trễ và làm thế nào tôi có thể sửa chữa nó? Tôi đang sử dụng requireGestureRecognizerToFail
để ngăn cử chỉ SingleTap
kích hoạt khi người dùng thực hiện DoubleTap
.Nhận dạng cử chỉ trên iPad - Trả lời chậm
- (void)createGestureRecognizers {
//Single Finger Double-Tap
UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleDoubleTap:)];
singleFingerDTap.numberOfTapsRequired = 2;
[super addGestureRecognizer:singleFingerDTap];
//Single Finger Tap
UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTap:)];
singleFingerTap.numberOfTapsRequired = 1;
[singleFingerTap requireGestureRecognizerToFail:singleFingerDTap];
[self addGestureRecognizer:singleFingerTap];
//Two Finger Pan
UIPanGestureRecognizer *panGesture2 = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(handlePanGesture2:)];
panGesture2.maximumNumberOfTouches = 2;
[super addGestureRecognizer:panGesture2];
//Single Finger Pan
UIPanGestureRecognizer *panGesture1 = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(handlePanGesture1:)];
panGesture1.maximumNumberOfTouches = 1;
[panGesture1 requireGestureRecognizerToFail:panGesture2];
[super addGestureRecognizer:panGesture1];
[singleFingerDTap release];
[singleFingerTap release];
[panGesture1 release];
[panGesture2 release];
}
Hành vi đó không phải là mong đợi? Nếu bạn yêu cầu nó trì hoãn hành động của nó cho đến khi một cử chỉ khác không thành công, thì nó không thể kích hoạt cho đến khi nó kết thúc. Và hai vòi có một khoảng thời gian giữa chúng (vòi! = Chạm), vì vậy bạn cần khoảng thời gian này để vượt qua. – Eiko
Cảm ơn, điều đó có ý nghĩa hoàn hảo! – Maddoxx