クイックダブルプレスは、実際には単一のユーザーアクションです。これは、入力用のヘッドセットコントロールを使用するほぼすべてのアプリケーションで望ましい動作です。開発者は、受信した制御イベントをデバウンス、キュー、解析する必要がありません。これはGood Thing(tm)です!
この機能を有効にするには、ユーザーの入力を待っている間、システムはわずかな遅延を導入します。これが完了するまで数百ミリ秒かかるだけです。その後、あなたのコードでイベントを受け取ります。
ダブルプレスの検出、長い痛みを伴うが、できれば有用な例:
- ユーザー
- システム通知プレスヘッドセットの制御に押下は、リリースを待つ
- ユーザリリースヘッドセット制御
- システム通知リリース、時間ボタンが押されたことを検出(長押しと短押し)し、シングルプレスイベントを待ちます。
- ダブルプレスの場合、システムは200ms待機します
- です!ユーザは、ヘッドセットの制御
- システム通知プレス上押下解除
- ユーザリリースヘッドセット制御
- システムは、それが三重場合に
- システムは、200msの待機ダブルプレスイベントにキューに入れられた単一のプレスイベントに変換するのを待ちます200msの
- 内
- - プレスユーザー入力システムは、二重のプレスイベントが発生し、
は遅延がどのように参照キューをクリアシングル/ダブル/トリプルプレス検出に必要です。
イベントがアプリケーションに到達すると、それは行ったユーザーをクリックしてどのタイプの説明サブタイプがあります:similar questionに
let rc = event!.subtype
print("received remote control \(rc.rawValue)") // 101 = pause, 100 = play
switch rc {
case .RemoteControlTogglePlayPause:
// ..
case .RemoteControlPlay:
// ..
case .RemoteControlPause:
// ..
default:break
}
答えは、これらのイベントコードの整数のようなものになります指摘しました。
100 = play
101 = pause
103 = single mic click
104 = double mic click
105 = triple mic click
etc ...
多くのプラットフォームでダブルプレスアクションは、単一のユーザーイベントとして処理されます。 UIEventTypeRemoteControlには、ボタンが何回押されたかを示すプロパティが含まれていますか? –
どんな種類の時間遅れ「遅れ」が得られますか?半分と1秒との間?数秒?サンプルプロジェクトや再現可能なテストケースを提供していただけますか? – JAL