Iphone SDK中的同步手势识别器 [英] Simultaneous gesture recognizers in Iphone SDK
问题描述
我需要使用 UISwipeGestureRecognizer
捕捉两种不同的翻转手势(例如, UISwipeGestureRecognizerDirectionRight
和 UISwipeGestureRecognizerDirectionLeft
)。当我使用 addGestureRecognizer 方法添加两个不同的识别器时,只有最后添加的识别器有效。我已经读过我需要实现 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizerDelegate
协议的方法,但没有任何作用。
I need to catch two different swipping gestures using UISwipeGestureRecognizer
(for example, UISwipeGestureRecognizerDirectionRight
and UISwipeGestureRecognizerDirectionLeft
). When I add two different recognisers with addGestureRecognizer method, only last added recognizer works. I've read that I need to implement gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: method of UIGestureRecognizerDelegate
protocol, but nothing works.
任何人都可以帮助捕捉两个或多个相同手势的简单示例吗?
谢谢!
Can anyone help with simple example of catching two or more same gestures? Thanks!
推荐答案
这很简单:
首先我们应该创建实现 UIGestureRecognizerDelegate
协议的类:
At first we should create class, that implements UIGestureRecognizerDelegate
protocol:
@interface MyGestureDelegate : NSObject <UIGestureRecognizerDelegate>
@implementation MyGestureDelegate
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
return YES;
}
并按照以下方式使用:
UISwipeGestureRecognizer *swipeGestureLeft = [[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSwipeGestureLeft:)];
[self.view addGestureRecognizer:swipeGestureLeft];
swipeGestureLeft.direction = UISwipeGestureRecognizerDirectionLeft;
[swipeGestureLeft release];
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSwipeGesture:)];
swipeGesture.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeGesture];
MyGestureDelegate *deleg = [[MyGestureDelegate alloc] init];
[swipeGesture setDelegate:deleg];
[swipeGesture release];
这篇关于Iphone SDK中的同步手势识别器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!