iPhoneの画面でシングルタップとダブルタップで全く別の動作をさせたいときや、ダブルタップにだけ反応して、シングルタップは無視したいようなときがあります。 しかし、単純にtapCountによって処理を分けようとすると、"[touch tapCount] == 2"の処理の前に"[touch tapCount] == 1"の処理が動いてしまいます。 touchesEnded:withEvent:が2回呼ばれて、1回目にシングルタップの処理、2回目にダブルタップの処理、という具合に動くからです。 調べたところ、以下のコードでだいたいうまく動くので紹介します。 1回目のタッチイベントでは実際の処理はせず、タイマーで0.25秒後に動くように、シングルタップの処理を登録しておきます。 そのあと、間髪を入れずにタッチイベントが発生して、タップカウントが2のときは、登録したシングルタップの処理をキャン