0

現在、ビューを 2 回タップするとズームインし、1 回タップすると新しいビューが表示されるようになっています。問題は、現在、ユーザーがトリプルタップすると、ズームが完了した後も新しいビューが表示されることです。ダブルタップ/ズーム後、0.25秒間タップ登録を無効にしたい。これを行う最善の方法は何ですか?ズームを完了として登録した後に起動されるメソッドが既にあるので、そこにスローできます。

ありがとう!

4

3 に答える 3

1

おそらく、ズームを開始するときとズームを終了するときuserInteractionEnabledにビューに設定するのと同じくらい簡単なことを行うことができます。NOYES

于 2013-06-21T19:25:19.987 に答える
0

これは、UI デザインでよくある問題です。ズームを行うためにアニメーションを使用している場合は、メソッドでタップ認識機能を無効にして、完了ブロックで再び有効にすることができます。

yourTapRecognizer.enabled = NO;

yourTapRecognizer.enabled = YES;

于 2013-06-22T10:52:47.030 に答える
0

3 つの簡単な方法があり、いずれかを選択できます。

  1. ジェスチャ認識機能を無効にする ( gestureRecognizer.enabled = NO;)
  2. ビューでのユーザー操作を無効にする ( view.userInteractionEnabled = NO;)
  3. アプリでのイベント処理を無効にする ( [[UIApplication sharedApplication] beginIgnoringInteractionEvents])

インタラクションを再度有効にするには、次を使用できます

dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t) (0.25 * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
    //enable recognizer, set user interaction to YES or call endIgnoringInteractionEvents
});

ただし、やみくもにマジック タイム ( ) を使用するのではなく、ハンドラーを何らかのイベントに関連付けることをお勧めします0.25 secs。あなたがすでにそのような方法を持っているなら、あなたにとって良いことです!

于 2013-06-22T11:07:21.297 に答える