UITableView iOS 中的辅助功能语音问题

问题描述 投票:0回答:2

我有一个屏幕,其中有一个

UITableView
。表视图有两个具有相同类型单元格的部分。当我通过可访问性检查器检查可访问性时,它不会遍历底部的所有单元格,而是读取一些单元格,然后跳回到顶部。
UITableViewCell
有 2 个
UILabel
和 1 个
UIButton
。我已将accessibilityElements设置如下:

self.accessibilityElements = [label1, label2, button].compactMap{$0}

注意:如果我不设置

accessibilityElements
,则辅助功能会读取屏幕上的所有单元格直到最后,但每个
UITableViewCell
中的元素顺序不正确,因此我必须设置
accessibilityElements 
在这里。 有谁知道这种行为以及如何解决它?

ios swift voiceover uiaccessibility
2个回答
0
投票

我也遇到了类似的问题:我的单元格有很多子视图,并且通过画外音它们的顺序乱了。所以我尝试做和你一样的事情,将子视图添加到

accessibilityElements
中。但这让我陷入了第一个单元格,就像你一样。所以我在我的
UITableViewCell
课上做了这个,它起作用了:

override func didAddSubview(_ subview: UIView) {
        super.didAddSubview(subview)
        accessibilityElements = subview
}

0
投票

我也有同样的情况。在我的屏幕上,我有一个静态 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];

© www.soinside.com 2019 - 2024. All rights reserved.