我想用动态高度表视图实现可扩展单元格。我将标头作为标题,将内部的单元作为可扩展单元。现在我有2期。
YouTube上的视频:https://youtu.be/1S6dLfWAv_0
1)当单元格增加tableView高度时,tableView上没有动画。
2):展开单元格时动画破碎。
切换操作:
我所做的是...我在HeaderView中添加了带有RxSwift的观察器,当点击标题时,我调用 toggleCell (下面的代码)。
func toggleCell(_ section: Int) {
data[section].isExpanded = !data[section].isExpanded
let scectionHeaderView: ExpandableCellsView = categoriesTableView.dequeueReusableHeaderFooterView()
scectionHeaderView.updateArrowState()
UIView.animate(withDuration: 0.15, animations: {
self.categoriesTableView.setContentOffset(CGPoint(x: 0, y: self.categoriesTableView.contentOffset.y), animated: false)
self.layoutIfNeeded()
self.categoriesTableView.beginUpdates()
self.categoriesTableView.endUpdates()
}, completion: nil)
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return data[indexPath.section].isExpanded ? 40 : 0
}
表视图也继承自:
class TableViewWithStaticHeight: UITableView {
override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return self.contentSize
}
override var contentSize: CGSize {
didSet{
self.invalidateIntrinsicContentSize()
}
}
}