VoiceOver不专注于后退按钮

时间:2016-08-22 14:01:48

标签: ios accessibility voiceover

在我看来有UITableView时,我对VoiceOver的行为有疑问。

如果我返回ViewController VoiceOver跳转到之前选择的单元格,选择表格的单元格以触发segue。
在我的didSelectRowAtIndexPath中,我致电tableView.deselectRowAtIndexPath(indexPath, animated: true)以阻止该单元格保持被选中状态。

我尝试在UIAccessibilityLayoutChangedNotification中发布UIAccessibilityScreenChangedNotificationviewDidAppear,但没有任何变化。

所以我的问题是:这是VO的正确行为吗?
当视图出现时,我该怎么做才能始终专注于后退按钮?

2 个答案:

答案 0 :(得分:0)

您是否传递了您想要关注的项目?如:

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.navigationController.navigationItem.backBarButtonItem);

否则在viewDidAppear中你可以循环遍历所有可见的单元格并在关注时关闭辅助功能,然后立即将其重新打开

for(UITableViewCell *cell in self.tableView.visibleCells) {
    if (cell.accessibilityElementIsFocused) {
        cell.isAccessibilityElement = NO;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            cell.isAccessibilityElement = YES;
        });
    }
}

绝对不是一种优雅的方法,但可能会有所作为。

答案 1 :(得分:0)

这会将画外音集中在第一个导航栏元素(后退按钮)上:

UIAccessibility.post(notification: .layoutChanged, 
                     argument: navigationController?.navigationBar)