3

1つのインスタンスUIGestureRecognizerですべてのタイプのジェスチャをキャッチする方法があるかどうかを知る必要があります。

例:UIViewがあり、ジェスチャーの種類ごとにインスタンスを作成せずに、UIViewで行われたあらゆる種類のタップを検出する必要があります

それを行う方法はありますか?

ありがとう、

4

2 に答える 2

6

もちろん、低レベルの UIView イベントを自分で処理します ( iOS のイベント処理ガイド):

Responding to Touch Events
– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:
Responding to Motion Events
– motionBegan:withEvent:
– motionEnded:withEvent:
– motionCancelled:withEvent:
于 2013-03-13T08:32:33.470 に答える
3

クラスをサブクラス化し、UIGestureRecognizerその内部状態をUIGestureRecognizerStateRecognizedタッチ開始時に変更できます。

サンプルコード:

@interface UITouchGestureRecognizer : UIGestureRecognizer

@end


#import <UIKit/UIGestureRecognizerSubclass.h>

@implementation UITouchGestureRecognizer

- (void) reset
{
    [super reset];
}

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [super touchesBegan:touches withEvent:event];
    self.state = UIGestureRecognizerStateRecognized;
}

@end
于 2013-11-05T19:45:57.673 に答える