Когда VoiceOver активен на устройстве iOS, жест одного пальца (влево или вправо) позволяет пользователям просматривать различные элементы в представлении. Есть ли способ определить, пользовался ли пользователь жестом салфетки с одним пальцем при использовании озвучивания?, когда VoiceOver включен, есть ли способ, которым приложение может обнаруживать одно пальцевое (левое право) салфетки?
ответ
Вы можете спросить любого из 2-х вещей:
Вы хотите знать, когда пользователь VoiceOver успешно выпустил сингл-пальца влево/вправо жест VoiceOver - VoiceOver будет обрабатывать («украсть») жест вашего кода и сделать его вещь (переместите курсор VoiceOver на следующий/предыдущий элемент). Ближе всего вы можете получить уведомления о UIView, когда курсор VoiceOver приземляется на него или покидает его (см. UIAccessibilityFocus protocol).
Вы хотите, чтобы часть вашего пользовательского интерфейса не подвергалась жестов VoiceOver (VoiceOver не будет обрабатывать («красть») жесты в этой области), чтобы вы могли сами выявлять жесты (в том числе проведите пальцем влево/справа) стандартным способом и обрабатывать их так, как вы хотите для своего приложения. Затем вы должны добавить свойство
UIAccessibilityTraitAllowsDirectInteraction
к собственностиaccessibilityTraits
к соответствующемуUIView
(см. UIAccessibility protocol для более подробной информации). Ярким примером того, где это используется, является GarageBand для iOS - клавиатура для фортепиано или ударные имеют эту черту, чтобы пользователь VoiceOver мог играть на инструментах, не отключая VoiceOver.
В результате я создал категорию/расширение на UIView и переопределяющую доступностьElementDidBecomeFocused().
Здесь я могу получить глобальный крючок, который вызывается каждый раз при изменении состояния доступности.
Swift пример:
extension UIView {
//MARK: Accessibility
override public func accessibilityElementDidBecomeFocused() {
super.accessibilityElementDidBecomeFocused()
UIApplication.sharedApplication().sendEvent(UIEvent())
}
}
спасибо вам ответ, первый выглядит, как он будет работать с моим сценарием. Я продолжу читать документацию. – 3254523