Swift: передача голоса за кадром из представления в представление оповещения или в другое представление - PullRequest
0 голосов
/ 23 июня 2019

В настоящее время я работаю над приложением и использую UIAccessibility, чтобы сделать его интуитивно понятным и простым в использовании для всех.

Я сталкиваюсь с тем, что считаю простой задачей, но я просто не могу ее понять, и мне нужны какие-либо рекомендации и / или помощь.

У меня есть TableView ипри касании ячейки, в зависимости от ее содержимого, она представляет представление с предупреждением или viewController.Когда закадровый перевод включен и ячейка нажата, закадровый перевод застревает в предыдущем представлении, а не в представленном viewController или alertView.Как сделать так, чтобы при переключении голосовой ячейки фокусировался на текущем представлении, а не на предыдущем.

Я попытался установить для accessibilityViewIsModal для предыдущего представления значение false и true для представленного представления.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
   tableView. accessibilityViewIsModal = false
    }

Фактический результат: голос за кадром фокусируется на предыдущем виде. Ожидаемый результат: голос за кадром должен фокусироваться на представленном виде предупреждения.

1 Ответ

0 голосов
/ 21 июля 2019

В большинстве случаев при представлении оповещения или контроллера модального представления оно должно просто работать.Можете ли вы поделиться более подробной информацией о том, как вы их представляете?Если вы используете пользовательские модальные презентации или у вас есть пользовательское представление предупреждений, вам иногда может потребоваться сообщить UIAccessibility, что экран изменился.Вы можете сделать это, отправив уведомление следующим образом:

UIAccessibility.post(notification: .screenChanged, argument: customModalView)

Где customModalView - это представление, которое вы хотите получить в фокусе VoiceOver.Иногда вы также можете найти проблему, которую вы описали, когда фокус все еще может перейти к элементам в представлении под представленным.Для этого вы можете использовать свойство, которое вы упомянули accessibilityViewIsModal.Но значение этого свойства по умолчанию равно false, вы должны установить свой 'modalView' как модальный для специальных возможностей при его представлении, и это позволит VoiceOver знать, что ему нужно пропустить любые родственные представления.

customModalView.accessibilityViewIsModal = true

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...