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()
}
}
}