Swift中的辅助功能:TableView中的语音转换返回空列表

时间:2017-07-09 15:59:02

标签: ios swift tableview accessibility voiceover

我正在使用自定义单元格以编程方式创建表格视图。但是,当我使用VoiceOver进行测试时,我得到了#34;空列表"和"内容为空"即使细胞中有价值。还有什么建议吗?

我的桌面视图 -

  func createTable(_ choicesArray:[String]){

    myTableView = UITableView(frame: CGRect(x: 10, y: self.verticalPostion, width: 340, height: 300))
    self.choicesData = choicesArray
    myTableView.estimatedRowHeight = 70
    myTableView.rowHeight = UITableViewAutomaticDimension
    myTableView.allowsMultipleSelection = true
    myTableView.register(AnswerCell.self, forCellReuseIdentifier: "cell")
    myTableView.dataSource = self
    myTableView.delegate = self

    myTableView.isAccessibilityElement = false
    myTableView.shouldGroupAccessibilityChildren = true

   // myTableView.reloadData()
    self.view.addSubview(myTableView)
}

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let cell = tableView.cellForRow(at: indexPath)
   //more code for cell selection
}


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return choicesData.count
}

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, tableView);
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! AnswerCell

     cell.choiceLabel.text = self.choicesData[indexPath.row]
    return cell
}

自定义单元格代码 -

class AnswerCell: UITableViewCell {

var choiceLabel = UILabel()

func configure(_ description: String) {
    choiceLabel.text = description
     applyAccessibility()
}

final func applyAccessibility() {
    isAccessibilityElement = true
    accessibilityLabel = choiceLabel.text!
    accessibilityHint = "Double tap to play."
    choiceLabel.isAccessibilityElement = false;
   }

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    self.contentView.addSubview(choiceLabel)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override func layoutSubviews() {
    super.layoutSubviews()

    choiceLabel.frame = CGRect(x: 20, y: 0, width: 70, height: 30)
}

}

0 个答案:

没有答案