Swift:从视图到警报视图或到另一个视图的语音转换
Posted
技术标签:
【中文标题】Swift:从视图到警报视图或到另一个视图的语音转换【英文标题】:Swift: Voice Over transition from view to alert view or to another view 【发布时间】:2019-06-23 19:13:53 【问题描述】:我目前正在开发一个应用程序,我正在使用 UIAccessibility 使其直观且易于所有人使用。
我正面临着我认为很简单的挑战,但我就是想不通,我需要任何指导和/或帮助。
我有一个 tableView,当一个单元格被点击时,它会根据其内容呈现警报视图或 viewController。当启用画外音并点击单元格时,画外音会停留在前一个视图上,而不是呈现的 viewController 或 alertView 上。当一个单元格被点击时,我该如何做到这一点?旁白聚焦于当前视图而不是前一个视图。
我已尝试将上一个视图的 accessibilityViewIsModal 设置为 false 和当前视图的 true。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
tableView. accessibilityViewIsModal = false
实际结果:旁白聚焦于前一个视图 预期结果:画外音应专注于呈现的警报视图。
【问题讨论】:
你有一个 github 存储,你的代码可以在其中找到一个准确的解决方案吗? 【参考方案1】:大多数时候,当呈现警报或模态视图控制器时,它应该可以正常工作。你能分享更多关于你如何展示这些的细节吗?如果您正在使用自定义模式演示文稿或者您有自定义警报视图,您有时可能需要通知 UIAccessibility 屏幕已更改。您可以发布这样的通知:
UIAccessibility.post(notification: .screenChanged, argument: customModalView)
customModalView 是您希望获得 VoiceOver 焦点的视图。有时您可能还会发现您描述的问题,焦点仍然可以跳转到当前视图下方的视图中的元素。为此,您可以使用您提到的属性accessibilityViewIsModal
。但此属性的值默认为 false,您必须将您的 'modalView' 设置为模态,以便在呈现时为可访问性目的,这将允许 VoiceOver 知道它需要跳过任何同级视图。
customModalView.accessibilityViewIsModal = true
我希望这会有所帮助!
【讨论】:
以上是关于Swift:从视图到警报视图或到另一个视图的语音转换的主要内容,如果未能解决你的问题,请参考以下文章
使用 Segue 在 Swift 中将带有数据的对象从一个视图传递到另一个视图
如何通过使用 swift 5 的动态集合视图从一个视图控制器移动到另一个视图控制器?
在 Swift 中将图像视图从一个视图控制器转移到另一个视图控制器