Использование голосового управления с помощью ScrollView и настраиваемых представлений
Голосовое управление и ScrollView
Чтобы показать, как реализовать голосовое управление для scrollView, мы создадим интерфейс для медиа-постов. Начнем с просмотра постов ниже.
PostView
PostView берет сообщение и отображает имя пользователя, изображение профиля и изображение. Проверьте код ниже для макета:
ScrollView с действием специальных возможностей
Вставьте ScrollViewReader
внутрь ScrollView
. Внутри ForEach просмотрите все свои сообщения. Дайте идентификаторы ваших сообщений, чтобы помочь нам прокрутить их с помощью ScrollViewProxy. Используйте модификатор accessibilityScrollAction()
, чтобы проверить, в каком направлении пользователь хочет прокручивать, затем используйте прокси-сервер ScrollViewReader для прокрутки к следующему или предыдущему сообщению.
Пользовательский вид и голосовое управление
Пользовательский переключатель
В статье ниже мы сделали собственный вид переключения:
Мы можем легко добавить доступность голосового управления к этому переключаемому представлению с помощью одной строки. К RoundedRectangle, который мы используем в качестве переключателя/переключателя, добавьте модификатор AccessibilityLabel()
. Голосовое управление будет прослушивать метку «Tap Toggle», чтобы включать и выключать тумблер. Проверьте строку 46 ниже:
Пользовательская кнопка
В статье ниже мы создали собственный стиль кнопки:
Неоморфный стиль кнопок в SwiftUI
Как анимировать состояния кнопок в ButtonStylebetterprogramming.pub
Если мы хотим, чтобы анимация кнопки воспроизводилась с помощью голосового управления, нам нужно внести некоторые изменения. Во-первых, добавьте к нашей кнопке модификаторы AccessibilityLabel()
и AccessibilityAction()
. AccessibilityAction()
перезапишет действия нашей кнопки. Без модификатора AccessibilityAction()
действия кнопки будут срабатывать без воспроизведения анимации нашей кнопки.
В NeumorphicButtonStyle
добавьте логическую переменную привязки. Используйте переменную, измените эту переменную внутри действия доступности и передайте ее значение стилю. Используйте модификатор OnChange()
, чтобы воспроизвести нашу анимацию и перевернуть ее через 0,2 секунды, чтобы вернуть кнопку в ненажатое состояние. См. код ниже:
Действие специальных возможностей и наша анимация будут запущены, когда пользователь произнесет «Tap Click».
Спасибо за чтение!