如何使我的自定义手势识别器类实例同时工作?

时间:2012-12-13 17:07:05

标签: ios objective-c cocoa-touch delegates uigesturerecognizer

您可以从此libk下载代码示例: https://github.com/mriddi/ExempleCustomGestureRecognizer.git

我像这样创建我的cusom手势识别器类:

@protocol MyGestureRecognizerDelegate <UIGestureRecognizerDelegate>
@optional
-(void) willDo;
@end

@interface MyGestureRecognizer: UIGestureRecognizer
{
    …
}
@property (nonatomic, assign) id <MyGestureRecognizerDelegate> delegate;
…
@end

@implementation MyGestureRecognizer
@synthesize delegate;
…
-(void) call{
    [delegate willDo];
}
…
@end

我的ViewController采用MyGestureRecognizerDelegate协议。 在ViewController中,我创建了我的类的实例:

MyGestureRecognizer * grFerst;
MyGestureRecognizer * grSecond;
grFerst.delegate=self;
grLeft.delegate=self;
[self.view addGestureRecognizer: grFerst];
[self.view addGestureRecognizer: grSecond];

我想让两个手势识别器实例同时工作。 我尝试添加到我的ViewController方法

shouldRecognizeSimultaneouslyWithGestureRecognizer

但是此方法从不调用,我使用NSLog函数进行了检查。

请帮我解决这个问题(允许同时处理两个手势识别器)。

1 个答案:

答案 0 :(得分:1)

也许你应该分配手势

MyGestureRecognizer * gesture = [[MyGestureRecognizer alloc] initWithTarget:self action:nil];
gesture.delegate = self;
[self.view addGestureRecognizer:gesture];

或者您可以使用控制轮作为目标并在那里进行所有角度计算。然后你委托回mainViewController。