0
我想解决一个tableView标题(粉红色),这是动画崩溃。随着tableViewHeader高度的缩小,表格视图单元格应该在tableView(橙色)的顶部拉起来。开始状态和结束状态都是正确的,但表格视图单元不同地以不同的速率动画。有些东西在这里显然是错误的,我似乎无法确定它是什么。UITableViewCells动画不同速率崩溃tableHeaderView
这似乎与我使用自调整表格视图单元格和tableView.rowHeight = UITableViewAutomaticDimension
这个事实有关。如果我使用固定高度的细胞,一切都很好。
开始状态:
中东国家(注细胞在头已经滑动):
这里是代码tha为动画片的崩溃。
func collapseHeader() {
UIView.animate(withDuration: 0.25, delay: 0, options: .curveEaseIn, animations: {
self.tableView.beginUpdates()
if let header = self.tableView.tableHeaderView as? TopicTableHeaderView {
header.setHeaderState(state: .collapsed)
}
self.sizeHeaderToFit()
self.view.layoutIfNeeded()
self.tableView.endUpdates()
}) { (bool) in
print("collapse completed")
}
}
func sizeHeaderToFit() {
if let headerView = tableView.tableHeaderView {
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
if headerView.frame.height != height {
headerView.frame = frame
tableView.tableHeaderView = headerView
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
}
}
}