gpt4 book ai didi

ios - 如何在删除 TableView 中的行后修复画外音

转载 作者:行者123 更新时间:2023-11-29 05:52:50 25 4
gpt4 key购买 nike

删除一行后修复画外音时遇到一些问题。结构是这样的:

我有一个包含 2 个部分的表格 View 。

  • 第一部分的标题高度 = 0,并且只有一行可变高度。
  • 第二部分有一个固定高度的标题,里面有一个按钮;此部分中的行可以是“n”。当用户点击标题内的按钮时,第一部分中的单元格将根据之前的状态被删除或重新插入。

在单元格展开的正常“状态”下,画外音效果完美。当用户点击按钮并删除第一部分中的行时,画外音会中断。如果我从上到下浏览,那就没问题了。相反,当您向上滚动时,vo 会读取屏幕上可见的单元格,但会先读取第一部分的标题,然后再读取其下面的单元格。

插入和删除非常简单:

let indexPath = IndexPath(row: 0, section: 0)
if isExpanded {
if tableView.contentOffset.y <= 0 {
tableView.insertRows(at: [indexPath], with: .automatic)
} else {
tableView.reloadData()
tableView.scrollToRow(at: indexPath, at: .top, animated: true)
}
} else {
tableView.deleteRows(at: [indexPath], with: .automatic)
}

每个部分中的单元格具有:isAccessibilityElement = false

辅助功能元素是单元格内的卡片,如下所示:

cardView.isAccessibilityElement = true
cardView.accessibilityTraits = .button

我非常感谢您的帮助,我尝试了不同的解决方案,但没有一个有效。真是头疼啊!

如果您需要更多信息来解决此问题,请告诉我。谢谢。

最佳答案

通过在第一部分中始终保留一行来解决此问题。

tableView.performBatchUpdates({
tableView.deleteRows(at: [indexPath], with: .fade)
tableView.insertRows(at: [indexPath], with: .fade)
}, completion: nil)

但是当变量 isExpanded 为 false 时,第一部分中的行高度将设置为 0,而不是自动设置。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.section == 0 {
return isExpanded ? UITableView.automaticDimension : 0
}
return UITableView.automaticDimension
}

关于ios - 如何在删除 TableView 中的行后修复画外音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55510358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com