问题描述
我们可以在不重新加载的情况下单击其中的按钮来更改 UITableViewCell
的内容大小吗?当我执行 reloadData()
或 reloadCell()
时 UITableView
闪烁,我想避免这种闪烁.
Can we change the content size of UITableViewCell
on click of a button inside it without reloading? When I do reloadData()
or reloadCell()
UITableView
flickers and I want to avoid this flickering.
推荐答案
你应该使用 beginUpdates() 和 endUpdates() 来改变 UITableViewCell 的内容大小,在这种情况下 heightForRowAtindexPath 将调用 tableView 中的每个单元格并更新 TableviewCell 的 height.对于 iOS > 10,您应该更喜欢 performBatchUpdates(_:completion:) 而不是 beginUpdates() 和 endUpdates().
You should use beginUpdates() and endUpdates() to change content size of UITableViewCell, in this case heightForRowAtindexPath will called for each cell in tableView and update height of TableviewCell.for iOS > 10, You should prefer performBatchUpdates(_:completion:) instead of beginUpdates() and endUpdates().
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView.beginUpdates()
self.tableView.endUpdates()
}
更多信息
https://appengineer.in/2018/07/11/resize-uitableviewcell-size-without-fluctuation-and-jerk/
https://developer.apple.com/documentation/uikit/uitableview/1614908-开始更新
这篇关于我们可以在不重新加载的情况下调整 UITableViewCell 的大小吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!