TouchesBegan オーバーロードで最初に設定した NSTimer を使用して、タップ アンド ホールド ハンドラーを実装しました。
しかし、私が実際に望んでいるのは、タッチが保持されている間、アクションが連射で連続して実行されることです。そのため、タイマーの期限が切れると、ハンドラーを呼び出して作業を行います。これにより、別のタイマーが設定され、TouchesEnded が入ってキャンセルされるか、別の終了条件が満たされるまで、サイクルが続きます。
これは、ハンドラー コードが同時にアニメーションをトリガーするまでは正常に機能します。これで、アニメーション イベントとタイマー イベントがオフになり、TouchesEnded も処理する必要があります。
私が見つけたのは、アニメーションがトリガーされ、タイマーを0.025秒未満に設定した場合、タイマーサイクルが停止するまでTouchesEndedイベントが発生しないことです(他の終了条件)。より遅いタイマーを設定するか、アニメーションをトリガーしないと、動作します (TouchedEnded がすぐに表示されます) が、私が望むものではありません。
明らかに、これはすべてデバイス上にあります (リリース ビルド - NSLogs なし) - sim ではすべて正常に動作します
これらのイベントの相対的な優先度を設定する方法はありますか?それとも、ここで明らかな何かが欠けている可能性がありますか?
[アップデート]
この例では、完了するまで視覚的なフィードバックなしで継続的な部分を実行することで、これを回避しました (このユーザーの観点からすると、これは瞬時です)。今のところこれでいいと思います。私はまだこれについてもっと考えを聞きたいと思っています (Jeffrey のアイデアは良かったです) が、今はテンターフックを待っているわけではありません.