0

1 つのビューに対して 4 つのジェスチャ レコグナイザーがあります。

- (void)createGestureRecognizers {
UITapGestureRecognizer *singleFingerSingleTap = [[UITapGestureRecognizer alloc]
                                                 initWithTarget:self action:@selector(handleSingleFingerSingleTap:)];
singleFingerSingleTap.numberOfTapsRequired = 1;
[self.panelController.view addGestureRecognizer:singleFingerSingleTap];

UITapGestureRecognizer *singleFingerDoubleTap = [[UITapGestureRecognizer alloc]
                                                 initWithTarget:self action:@selector(handleSingleFingerDoubleTap:)];
singleFingerDoubleTap.numberOfTapsRequired = 2;
[self.panelController.view addGestureRecognizer:singleFingerDoubleTap];

[singleFingerSingleTap requireGestureRecognizerToFail:singleFingerDoubleTap];

[singleFingerSingleTap release];
[singleFingerDoubleTap release];

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]
                                      initWithTarget:self action:@selector(handlePanGesture:)];
[self.panelController.view addGestureRecognizer:panGesture];
[panGesture release];

UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]
                                          initWithTarget:self action:@selector(handlePinchGesture:)];
[self.panelController.view addGestureRecognizer:pinchGesture];
[pinchGesture release];}

UIPinchGestureRecognizer の Ended 状態を処理する必要がありますが、最終状態が Ended ではなく Changed になることがあります。理由を知っている人はいますか?私は setDelaysTouchesEnded: で遊んでみますが、何も:(

4

2 に答える 2

0

と同じ問題UIRotationGestureRecognizerです。動きごとにトリガーされ、停止すると停止しますが、ユーザーが指を離したことを通知しません。この動きは終了しました。

これは、単純なジェスチャーではなく、継続的なジェスチャーであるためです。

あなたも対処する必要がありUIGestureRecognizerStateEndedます。

于 2012-08-20T14:45:56.623 に答える
0

ピンチ ジェスチャは 2 本指のジェスチャです。そのため、1 本の指が画面に残り、もう 1 本の指がすでに開いている場合があります。したがって、私のアドバイスは、処理するだけでなくUIGestureRecognizerStateCancelledUIGestureRecognizerStateFailedUIGestureRecognizerStateEnded

于 2012-08-20T14:24:28.933 に答える