1つのインスタンスUIGestureRecognizerですべてのタイプのジェスチャをキャッチする方法があるかどうかを知る必要があります。
例:UIViewがあり、ジェスチャーの種類ごとにインスタンスを作成せずに、UIViewで行われたあらゆる種類のタップを検出する必要があります
それを行う方法はありますか?
ありがとう、
1つのインスタンスUIGestureRecognizerですべてのタイプのジェスチャをキャッチする方法があるかどうかを知る必要があります。
例:UIViewがあり、ジェスチャーの種類ごとにインスタンスを作成せずに、UIViewで行われたあらゆる種類のタップを検出する必要があります
それを行う方法はありますか?
ありがとう、
もちろん、低レベルの UIView イベントを自分で処理します ( iOS のイベント処理ガイド):
Responding to Touch Events
– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:
Responding to Motion Events
– motionBegan:withEvent:
– motionEnded:withEvent:
– motionCancelled:withEvent:
クラスをサブクラス化し、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