您可以从此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
函数进行了检查。
请帮我解决这个问题(允许同时处理两个手势识别器)。
答案 0 :(得分:1)
也许你应该分配手势
MyGestureRecognizer * gesture = [[MyGestureRecognizer alloc] initWithTarget:self action:nil];
gesture.delegate = self;
[self.view addGestureRecognizer:gesture];
或者您可以使用控制轮作为目标并在那里进行所有角度计算。然后你委托回mainViewController。