我有一个屏幕,其中有一个
UITableView
。表视图有两个具有相同类型单元格的部分。当我通过可访问性检查器检查可访问性时,它不会遍历底部的所有单元格,而是读取一些单元格,然后跳回到顶部。 UITableViewCell
有 2 个 UILabel
和 1 个 UIButton
。我已将accessibilityElements设置如下:
self.accessibilityElements = [label1, label2, button].compactMap{$0}
注意:如果我不设置
accessibilityElements
,则辅助功能会读取屏幕上的所有单元格直到最后,但每个UITableViewCell
中的元素顺序不正确,因此我必须设置accessibilityElements
在这里。
有谁知道这种行为以及如何解决它?
我也遇到了类似的问题:我的单元格有很多子视图,并且通过画外音它们的顺序乱了。所以我尝试做和你一样的事情,将子视图添加到
accessibilityElements
中。但这让我陷入了第一个单元格,就像你一样。所以我在我的UITableViewCell
课上做了这个,它起作用了:
override func didAddSubview(_ subview: UIView) {
super.didAddSubview(subview)
accessibilityElements = subview
}
我也有同样的情况。在我的屏幕上,我有一个静态 tableView,带有静态单元格。请参阅屏幕截图。但问题是使用 Accessibility Inspector 时,它只能读取整个单元格和整个静态字符串
Connection WiFi
而不是两个不同的文本。
从提到的链接中,我找到了这个答案的解决方案:https://stackoverflow.com/a/58183764/3231194
由于我无法对单元格进行子类化,而且这样做似乎不理想(我正在使用故事板),所以我只需要制作 IBOutlet,并从那里继续一切。
self.connectionTitleLabel.accessibilityIdentifier = @"sync-settings-connection-title";
self.connectionType.accessibilityIdentifier = @"sync-settings-connection-type";
self.connectionCell.isAccessibilityElement = NO;
self.connectionCell.accessibilityElements = @[self.connectionTitleLabel, self.connectionType];