【发布时间】:2012-12-13 17:07:05
【问题描述】:
您可以从此 libk 下载代码示例: https://github.com/mriddi/ExempleCustomGestureRecognizer.git
我像这样创建我的自定义手势识别器类:
@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函数检查过。
请帮我解决这个问题(允许两个手势识别器同时工作)。
【问题讨论】:
-
为什么需要委托?也许看看这个帖子stackoverflow.com/questions/13431806/…
-
不,我需要委托。我的程序有 2 个控制轮(一个轮负责在 x 上移动光标,另一个负责移动光标 y 轴)。这是一种绘画应用程序。每个轮子都有自己的手势识别器。当我旋转轮子时,手势识别器会处理角度并将其传输给它的代表。接下来,委托将接收到的角度转换为点......我的意思是我的自定义手势识别器需要它自己的协议和委托。
标签: ios objective-c cocoa-touch delegates uigesturerecognizer