2012-04-12 3 views
4

UITapGestureRecognizerでnumberOfTapsRequiredを2に設定すると、最初のタップ後にもう一度タップしてレコグナイザを起動するまでに一定の時間がかかります。誰もが許可されている時間の正確な量を見つける方法を知っていますか?UITapGestureRecognizerタイムアウト?

NSEventには、ココアと同様に、doubleClickIntervalクラスメソッドがあります。私はUITapGestureRecognizerのiOSで同等のものを探しています

+0

「NSTimer」であなた自身がいつも自分の役割を果たすことができます。 –

+0

私はそれを設定したくありません、それは何かを見つけたいだけです。 UITapGestureRecognizerを使用しないでダブルタップを複製する必要があります。また、ユーザーがUITapGestureRecognizerを使用している場合と同じエクスペリエンスを持つようにします。 –

+0

ちょうどguestimateそれはほとんど0.2fの周りにあるでしょう; –

答えて

2

答え:0.35秒、少なくとも今日のiOS 5.1の時。

私は、一対のタップ認識器を使って一対のタップを認識し、一対のUIラベルを更新するテストアプリケーションを作成しました。次に、Instruments UI automationを使用して、タップの間に徐々に時間を増やしてダブルタップを繰り返し送信しました。 0.34秒で一連のタップがダブルタップとして認識されますが、0.35秒でシングルタップとして認識されます。

これはLouの提案に非常によく似ていますが、私はInstrumentsを使う必要があった点で違います。私は、UIKit内のユーザータップをシミュレートする方法がないことがあります。

1

テストアプリケーションでは、UITapGestureRecognizerを作成してから、touchesBegan:withEvent:とそれに関連するメンバーをタイマーで呼び出すことを開始します。それがジェスチャーを認識させるかどうかを確認してください。

ジェスチャが認識できるように正しく呼び出す方法を試してみる必要があるかもしれませんが、私が理解したところでは、認識器はビューのバージョンの同じメッセージのセレクタとして呼び出されます、あなた自身を呼び出すことは同じ効果があるはずです。

あなたが必要とする任意の許容値まで番号を見つけたら、それをあなたのアプリで使うことができます。

また、これはいつでも変更することができます(Appleが気に入っているため)、またはiOSのバージョンによって異なる場合があります。これをいつでも初期設定に組み込むことができます。

または、彼のコメントで@Paulが示唆しているように、ちょうど十分に近づくことができます。

+1

提案してくれてありがとう、Lou。私はあなたの提案を試みたが、私はUITouchまたはUIEventオブジェクトのいずれかを作成する方法を見つけることができないので、これらのパラメータに対してnilを渡すだけであり、シミュレートされたタップは無視されます。しかし、あなたの提案は私には分かりませんでした。そして、私はインストゥルメンタルのオートメーションツールを使って、あなたが提案したものを基本的に行いました。 –

関連する問題