AccessibilityElements在TableView中不起作用

时间:2015-03-24 16:30:30

标签: ios uitableview swift uiaccessibility

我试图改写语音说话的标准方式。

如果我什么都不做(让故事板发挥作用),它将访问单元格中的所有元素。 但是,当我试图改变单元格的语音顺序时,它不起作用。

请参阅下面的代码:

class OverviewTableViewCell: UITableViewCell {

@IBOutlet weak var messageIndicator: UIView!
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var lastMessagelabel: UILabel!
@IBOutlet weak var profileImage: UIImageView!

   override func awakeFromNib() {
       super.awakeFromNib()

       accessibilityElements = [messageIndicator, dateLabel, nameLabel, lastMessagelabel]
   }

   override func setSelected(selected: Bool, animated: Bool) {
       super.setSelected(selected, animated: animated)
   }
}

此外,当我尝试通过故事板禁用元素并以编程方式执行时根本不起作用。

    messageIndicator.isAccessibilityElement = true
    dateLabel.isAccessibilityElement = true
    nameLabel.isAccessibilityElement = true
    lastMessagelabel.isAccessibilityElement = true

我做错了什么?

非常感谢。

1 个答案:

答案 0 :(得分:2)

将单元格的子元素作为自己的可访问性元素并不常见。如果您查看设备上的其他应用程序(Apple自己的应用程序通常具有良好的可访问性),您会发现在大多数情况下,表格视图单元格是一个可访问性元素,其中包含其标签中子元素的所有信息。

您可以通过使单元格成为辅助功能元素并且子元素成为辅助功能元素来实现此目的。然后,按照您认为最合适的顺序从不同的信息中构建自定义辅助功能标签。