[英]How to implement Z Gesture to dismiss an alert or go to previous screen in voiceOver for iOS?
[英]iOS Accessibility, how to make focus go back to the last item after dismiss the alert
我有一个按钮,当我点击按钮时,会有一个警报。
当我打开画外音并点击按钮时,点击警报确定按钮以关闭警报,焦点将返回到页面/后退按钮的顶部,而不是触发警报的按钮。
我正在使用这段代码将焦点移回按钮:
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, button)
})
问题是在您关闭警报后,焦点将返回到顶部并首先读取标签,然后返回按钮。 重点不是直接按钮,看起来很蹩脚。
我检查了一些Apple应用程序,我发现在它们解除警报后,焦点将在警报弹出之前返回到上一个元素。 知道怎么做到这一点? 谢谢!
我今天早些时候遇到过这个问题 - 我解决它的方法是发布一个UIAccessibilityScreenChangedNotification
而不是UIAccessibilityLayoutChangedNotification
:
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, button)
布局更改用于在视图的当前上下文中更改布局 。 屏幕更改用于当用户体验到上下文的改变时,即解除警报并返回到呈现视图控制器。
您也可以删除dispatch_after
块 - 使用屏幕更改通知代替您将从Apple的某个应用程序中获得相同的功能。
这是一个答案的链接,解释了UIAccessibilityLayoutChangedNotification和UIAccessibilityScreenChangedNotification之间的区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.