在 UITableViewCell 上设置accessibilityElements后,IOS UITableView可访问性顺序错误

vm2*_*000 5 accessibility uitableview ios uiaccessibility swift

在 UITableViewCell 上设置accessibilityElements后,IOS UITableView可访问性顺序错误

我有一个大而复杂的 UITableView,其中有许多不同类型的自定义 UITableViewCell。如果我不对代码进行任何特殊的可访问性更改,表格将依次读取屏幕上的所有单元格,并正确滚动,以便继续读取,直到读取整个表格。但是,在某些单元格中,子视图未按正确的顺序读取。为了解决这个问题,我在 UITableViewCell 上设置了isAccessibilityElement = falseaccessibilityElements = [my subviews in the correct order]。当我这样做时,桌子开始在画外音模式下表现得很疯狂。

有时它会在特定单元格之后停止,并且不会继续到屏幕上的其他单元格。

有时它会从读取索引 20 处的单元格跳转到读取索引 5 处的单元格。

有时,它会到达屏幕上可见的最后一个单元格(还有更多单元格可供滚动),并会跳出表格以读取表格滚动条的“垂直滚动条”,然后不再继续表格内容。

同样,我所做的一切都是在我的 UITableViewCell 子类中:

isAccessibilityElement = false 
accessibilityElements = [my subviews in the correct order]
Run Code Online (Sandbox Code Playgroud)

Cac*_*nti 1

我有同样的问题。发生这种情况可能是因为子视图以错误的顺序添加。这对我有用:在所有 UITableViewCell 子类中添加以下内容:

override func didAddSubview(_ subview: UIView) {
     super.didAddSubview(subview)
     self.accessibilityElements = self.subviews
}
Run Code Online (Sandbox Code Playgroud)