iOS打开语音时,读取tabeviewcell中的所有元素

时间:2018-06-05 18:10:11

标签: ios accessibility voiceover

我有一个自定义的tableview单元格,前面有一个图像,中间有几个标签,最后是一个图像。当翻转配音并集中在整个tableview行时,将读取所有标签,然后当我滑动移动到下一个控件时,第一个图像被聚焦,然后滑动控件移动到第二个图像。当整个行聚焦时,如何使行中的所有元素一起读取?

2 个答案:

答案 0 :(得分:0)

使用shouldGroupAccessibilityChildren&确保单元格中的所有元素都可访问。 (element.isAccessibilityElement = YES;) https://developer.apple.com/documentation/objectivec/nsobject/1615143-shouldgroupaccessibilitychildren?language=objc

答案 1 :(得分:0)

  

当整个行集中时如何使行中的所有元素一起阅读?

必须将TableviewCell视为一个容器,因此,如果定义了accessible,则VoiceOver无法分析其中包含的元素:您不能拥有父项视图及其子级可以一起访问⟹参见this explanation的示例表。

如果您不希望读取每个单元格中的元素,则只需定义它们中的每个元素,如下所示:

override func tableView(_ tableView: UITableView, 
                        cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", 
                                             for: indexPath)

    cell.isAccessibilityElement = true
    cell.accessibilityLabel = "APPEND YOUR LABELS HERE"

    // Add everything you need to construct your cell here.

    return cell
}

基于此原理,当VoiceOver开启时,iOS不会读出TableviewCell中的所有元素