Использование голосового управления с помощью ScrollView и настраиваемых представлений

Голосовое управление и ScrollView

Чтобы показать, как реализовать голосовое управление для scrollView, мы создадим интерфейс для медиа-постов. Начнем с просмотра постов ниже.

PostView

PostView берет сообщение и отображает имя пользователя, изображение профиля и изображение. Проверьте код ниже для макета:

ScrollView с действием специальных возможностей

Вставьте ScrollViewReader внутрь ScrollView. Внутри ForEach просмотрите все свои сообщения. Дайте идентификаторы ваших сообщений, чтобы помочь нам прокрутить их с помощью ScrollViewProxy. Используйте модификатор accessibilityScrollAction(), чтобы проверить, в каком направлении пользователь хочет прокручивать, затем используйте прокси-сервер ScrollViewReader для прокрутки к следующему или предыдущему сообщению.

Пользовательский вид и голосовое управление

Пользовательский переключатель

В статье ниже мы сделали собственный вид переключения:



Мы можем легко добавить доступность голосового управления к этому переключаемому представлению с помощью одной строки. К RoundedRectangle, который мы используем в качестве переключателя/переключателя, добавьте модификатор AccessibilityLabel(). Голосовое управление будет прослушивать метку «Tap Toggle», чтобы включать и выключать тумблер. Проверьте строку 46 ниже:

Пользовательская кнопка

В статье ниже мы создали собственный стиль кнопки:



Если мы хотим, чтобы анимация кнопки воспроизводилась с помощью голосового управления, нам нужно внести некоторые изменения. Во-первых, добавьте к нашей кнопке модификаторы AccessibilityLabel() и AccessibilityAction(). AccessibilityAction() перезапишет действия нашей кнопки. Без модификатора AccessibilityAction() действия кнопки будут срабатывать без воспроизведения анимации нашей кнопки.

В NeumorphicButtonStyle добавьте логическую переменную привязки. Используйте переменную, измените эту переменную внутри действия доступности и передайте ее значение стилю. Используйте модификатор OnChange(), чтобы воспроизвести нашу анимацию и перевернуть ее через 0,2 секунды, чтобы вернуть кнопку в ненажатое состояние. См. код ниже:

Действие специальных возможностей и наша анимация будут запущены, когда пользователь произнесет «Tap Click».

Спасибо за чтение!