0

UIButton にダブルタップ ジェスチャがあります。選択されていない状態と選択された状態の 2 つの異なる背景画像があります。

すべての機能が動作しますが、ボタンをタッチすると、選択された状態の背景画像の変更に遅延が発生します。

ダブルタップジェスチャーをなくせば遅延はありません。

この遅延を解消し、ダブルタップ ジェスチャを維持するにはどうすればよいですか?

4

1 に答える 1

2

推測では、ボタンが必要とするシングルタップが認識される前に、ダブルタップしていないことを確認できるまで待機しています。UIViewおそらく、ジェスチャ認識機能が曖昧さをなくすのに役立つ機能が組み込まれてUIButtonおり、機能を実行するために認識機能を使用しています。

UIControlそれを念頭に置いて、既存の吹き出しに基づいてダブルタップを合成することを検討しましたか? たとえば、次のようになります。

- (IBAction)buttonWasTapped:(id)sender // wired up to the button
{
    NSTimeInterval timeNow = [NSDate timeIntervalSinceReferenceDate];
    NSTimeInterval difference = timeNow - timeThen;
    timeThen = timeNow; // an instance variable

    if(difference < kYourAllowedTimeBetweenTaps)
    {
        timeThen = 0.0; // to avoid capture of triple taps, etc
        [self buttonWasDoubleTapped:sender];
        return;
    }

    // do normal single tap processing here, if any
}
于 2012-08-21T19:20:26.010 に答える