0

私は UIView touched イベント ハンドラーを持っています。これは perfomsSelector withDelay を実行します....しかし、ユーザーが画面に触れると、当然のことながら touchEnded イベントが発生します。ユーザーがこのUIViewで数秒間指を置いて離した後に操作を開始したいので、これを行います。

セレクターメソッドが開始される前 (遅延が経過する前) にユーザーが画面から指を離したときに、最初にセレクターを実行しないようにし、次に touchEnded メソッドを実行しないようにしたいと思います。

フラグの追加を開始できますが、これは効率的ではないように見えます。

これを行う別の方法はありますか。

ありがとうございました。

4

3 に答える 3

1

最良の解決策は、タッチを自分で追跡する代わりに、おそらく UILongPressGestureRecognizer を使用することです。

于 2012-07-14T16:57:55.233 に答える
1

@rob answer はより良い解決策ですが、何らかの理由で使用できない場合。これを試して:

タッチで、cancelPreviousPerformRequestsWithTarget の呼び出しが終了しました。これにより、以前の通話がキャンセルされます。

于 2012-07-14T17:05:17.520 に答える
1

ジェスチャ認識エンジンを使用したくない場合は、BOOL (長押し) と cancelPreviousPerformRequestsWithTarget:self の呼び出しが必要になります。「longpressed」が設定されている場合は、touchesEnded をチェックインします。

于 2012-07-14T17:08:02.183 に答える