4つの可能な解決策
あなたの方法は大丈夫だと思います
- (void)quantityChanged:(UITapGestureRecognizer *)tapRecognizer {
static NSUInteger numberOfTaps;
if (tapRecognizer.state == UIGestureRecognizerStateEnded) {
numberOfTaps ++;
NSLog(@"web service call with %d",numberOfTaps);
}
}
ログを見る
web service call with 1
web service call with 2
web service call with 3
web service call with 4
また
トリガーした後、quantityChangedUITapGestureRecognizerを削除します
つまり、送信者オブジェクトからUITapGestureRecognizerを削除します(最初のWebサービスの後のquantityChangedメソッド内)
次に、最初のWebサービス応答を受け取った後、UITapGestureRecognizerを送信者に再度追加します。
また
UILongPressGestureRecognizerを使用します。それは長いイベントプロセスです。イベントの状態を開始、完了などで確認し、コードを記述してください。
- (IBAction)longPressDetected:(UIGestureRecognizer *)gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){
NSLog(@"Long press began");
} else if ( gestureRecognizer.state == UIGestureRecognizerStateRecognized ) {
NSLog(@"Long press UIGestureRecognizerStateRecognized");
}
else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
NSLog(@"Long press Ended");
}
else {
NSLog(@"Long press detected.");
}
}
また
UITapGestureRecognizerに必要なnumberOfTapsを設定します
UITapGestureRecognizer *doubleTapRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(beginComicTransitions:)] autorelease];
doubleTapRecognizer.numberOfTapsRequired = 2;
doubleTapRecognizer.numberOfTouchesRequired = 1;
doubleTapRecognizer.delegate = self;