1

UISwipeGestureRecognizer を使用しています。次の問題があります。四角に触れると回転し、手を離すと回転が止まります。タイマーで、タッチして10秒経過すると、正方形が自動的に回転を停止するようにしたいと思います。解決策を見つけましたが、それはきれいではないと思います。メソッドから自動的に渡す考えはありますか:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

メソッドに:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

私はこのコードを使用していました:

  - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
if ([self state] == UIGestureRecognizerStatePossible) {
      [self setState:UIGestureRecognizerStateBegan];
       NSLog(@"Algo Began");

   } 

    if ([[event touchesForGestureRecognizer:self] count] > 1)
    {
        [self setState:UIGestureRecognizerStateCancelled ];
        NSLog(@"Algo Fail");

    }


    if (chowMuch==50) {
        //[self setState:UIGestureRecognizerStateFailed  ]; 
        [self setState:UIGestureRecognizerStateRecognized  ]; 


        NSLog(@"Algo falla que pasara");
    }

   else {
      [self setState:UIGestureRecognizerStateChanged];
       NSLog(@"Algo changed");

}
}

メソッドは常に を実行してNSLog(@"Algo changed")います。つまり、四角形に触れると状態は UIGestureRecognizerStateChanged になりますが、chowMuchが 50 になると、これが終了します。に渡す考えはありますかtouchesEnded

4

1 に答える 1

-1

タッチを受け取る (または応答する) サブビューを削除して再度追加してみてください。

誰かが答えに反対票を投じたので、ユーザーが指を離さなくても、上記はジェスチャーをキャンセルします。しばらく探しましたが、別の解決策を見つけることができませんでした。

もちろん、これはより複雑なタスクには適していません。UIScrollViewも参照して、ズーム ピンチ ジェスチャをキャンセルする

于 2013-03-24T20:52:40.150 に答える