为 UITableView 插入带有动画的行(并更新所有其他单元格)
Posted
技术标签:
【中文标题】为 UITableView 插入带有动画的行(并更新所有其他单元格)【英文标题】:Insert rows for UITableView with animation (and update all other cells) 【发布时间】:2016-11-16 17:54:49 【问题描述】:在我的表格视图中,我的单元格的背景颜色设置取决于它是奇数还是偶数。
我想插入带有动画 .top
的新单元格,让它们从 tableview 的顶部向下动画。
但是,这样做时,它们与单元格的背景颜色存在差异。我知道在使用tableView.insertRows
时,它只为插入的行调用cellForRow
。让已经存在的单元格的背景颜色错误。
我尝试调用:
tableView.beginUpdates()
tableView.insertRows()
tableView.endUpdates()
真的不知道如何解决这个问题。任何帮助表示赞赏。
【问题讨论】:
你需要像这样重新加载你的表tableView.reloadData()
@Rajat 你不明白我的问题。我不想重新加载,因为我想要动画。
尝试在func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
中添加您的自定义动画
@ConstantinSaulenco 嗯你有什么例子吗?
【参考方案1】:
我将在插入前检查第一个单元格的状态并根据该单元格排列背景。
【讨论】:
【参考方案2】:您可以在所有可见的索引路径上使用 reloadRows(at:with:)。您可以通过调用indexPathsForVisibleRows 来获取可见的索引路径。这将强制动画。
func reloadVisibleCells()
tableView.reloadRows(at: tableView.indexPathsForVisibleRows, with: .automatic)
【讨论】:
以上是关于为 UITableView 插入带有动画的行(并更新所有其他单元格)的主要内容,如果未能解决你的问题,请参考以下文章
删除和插入具有不同高度的单元格时,UITableView 动画故障