你可以從這個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
我的視圖控制器採用MyGestureRecognizerDelegate
協議。 在ViewController
創建我的類的實例:
MyGestureRecognizer * grFerst;
MyGestureRecognizer * grSecond;
grFerst.delegate=self;
grLeft.delegate=self;
[self.view addGestureRecognizer: grFerst];
[self.view addGestureRecognizer: grSecond];
我想使這兩個手勢識別實例同時運行。 我嘗試添加到我的ViewController
方法
shouldRecognizeSimultaneouslyWithGestureRecognizer
但這種方法從來不打電話,我檢查使用NSLog
功能。
請幫我解決這個問題(允許同時使用兩個手勢識別器)。
爲什麼你需要一個代表?也許有看看這篇文章http://stackoverflow.com/questions/13431806/animatewithduration-and-touchesbegan-dont-work-in-pair/13432038#13432038 – nooitaf
不,我需要委託。我的程序有兩個控制輪(一個輪子負責將光標移動到X上,另一個負責移動光標Y軸)。這是一種繪畫應用程序。每個車輪都有自己的手勢識別器。當我旋轉車輪時,手勢識別器處理角度並將其傳送給它的代表。接下來,委託將recived角度轉換爲point ...我意識到我的自定義gesure識別器需要它自己的協議和委託。 – mriddi