2017-01-13 8 views
0

私はマップを含む盲目の人々のためのアプリを開発しています。 VoiceOverをオフにすると、UIGestureRecognizerでスワイプとダブルタップジェスチャを検出できます。たとえば、iosでVoiceOverジェスチャーを無効にするにはどうすればよいですか?

ただし、VoiceOverがオンになっている場合、自分が所有しているVoiceOverジェスチャーを無効にすることはできません。私は直接の対話を可能にするUIAccessibilityTraitsの可能性を認識しています:

[mySubView setAccessibilityTraits: UIAccessibilityTraitAllowsDirectInteraction]; 

問題は、私はマップ、私が直接相互作用を許可したときに、私はマップ(パン、ズーム、など)との対話開始を持っているので、ということです。しかし、私の目標は地図をそのまま保つことですが、GestureRecognizersを使ってジェスチャーを検出し、それらにリンクされているアクションを実行します。

これを行う方法に関するアイデアはありますか?

答えて

1

VoiceOverの直接対話モデルは、ジェスチャ認識ツールをサポートしています。あなたが観察しているのは、地図のジェスチャー処理との競合です。マップビューの複雑さとタッチ操作の複雑さを考えると、私は2つの代替アプローチの1つをとることを推奨します。いずれの場合も、マップビューの上に透明なUIViewを重ねることをお勧めします。

  1. 任意のジェスチャ認識機能をこのカスタムビューに添付します。ユーザーは直接的なやりとりによってショートカットを起動することができます。 VoiceOverを実行しているときにこれを条件付けたいと思うかもしれません。
  2. 完全に直接対話を回避し、ショートカットをcustom actionsとしてマップまたはオーバーレイビューに実装します。これは、VoiceOverだけでなく、他のアクセシビリティ機能の利用者にとっても有益です。
関連する問題