我目前正在开发一个应用程序,并且正在使用UIAccessibility使其直观,易于使用。
我正面临着我认为很简单的挑战,但是我无法弄清楚,我需要任何指导和/或帮助。
我有一个tableView,当根据其内容轻按一个单元格时,它会显示一个警报视图或一个viewController。启用画外音并轻按一个单元格后,画外音将停留在上一个视图上,而不显示在所显示的viewController或alertView上。轻按一个单元格时,如何使声音集中在当前视图而不是上一个视图。
我曾尝试将上一个视图的accessibilityViewIsModal设置为false,然后将所显示的视图设置为true。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView. accessibilityViewIsModal = false
}
实际结果:旁白聚焦于前一个视图 预期结果:旁白应集中在显示的警报视图上。
答案 0 :(得分:0)
在大多数情况下,发出警报或模态视图控制器时,它应该可以正常工作。您能否分享更多有关如何呈现这些细节的信息?如果您正在使用自定义模式演示文稿或具有自定义警报视图,则有时可能需要通知UIAccessibility屏幕已更改。您可以像这样发布通知:
UIAccessibility.post(notification: .screenChanged, argument: customModalView)
其中customModalView是您要获得VoiceOver焦点的视图。有时,您可能还会发现所描述的问题,其中焦点仍然可以跳转到所呈现的视图下方的视图中的元素。为此,您可以使用您提到的accessibilityViewIsModal
属性。但是默认情况下,此属性的值为false,出于呈现可访问性的目的,您必须将“ modalView”设置为模态,这样VoiceOver才能知道它需要跳过任何同级视图。
customModalView.accessibilityViewIsModal = true
我希望这会有所帮助!