我有一个带有静态单元格的TableView,我想在按下按钮时展开它。单元格内部有一个容器视图,约束已正确设置,但我不确定如何实际动画扩展单元格,因为它需要我刷新< strong>表格视图更新约束并展开单元格。
目前,当我致电<script type="text/javascript" src="https://code.jquery.com/jquery-latest.js"></script>
时,它没有动画,因为我正在呼叫expandContainerView
。
这是我用来扩展单元格的代码
self.tableView.reloadData
这是索引代码
中每行的高度@objc private func expandContainerView(notification: NSNotification) {
self.view.layoutIfNeeded()
UIView.animate(withDuration: 2.0, delay: 0.0, options: .curveEaseOut, animations: {
self.containerHeightConstraint.constant = 410
self.view.layoutIfNeeded()
self.tableView.reloadData()
}, completion: nil)
}
答案 0 :(得分:2)
您只能使用以下代码重新加载要扩展的单元格。我添加了didSelectRowAt
,但您可以在按钮操作方法中添加相同的代码。
将expandCell变量设置为true,以便在重新加载时更改单元格的高度。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Expand View
self.expandCell = true
self.tableView.beginUpdates()
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
self.tableView.endUpdates()
}
您需要指定高度以展开单元格视图,否则它将显示默认高度。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == expandRowIndex && self.expandCell {
return 200
}
return UITableViewAutomaticDimension
}
注意:不需要动画。重新加载单元格时扩展视图动画
答案 1 :(得分:0)
尝试没有动画块:
containerHeightConstraint.constant = 410
tableView.beginUpdates()
tableView.endUpdates()