Я хочу реализовать расширяемую ячейку с динамическим представлением таблицы высот. Я сделал заголовок как заголовок и ячейки внутри как расширяемые ячейки. На данный момент у меня есть 2 вопроса.
Видео на YouTube: https://youtu.be/1S6dLfWAv_0
1) Нет анимации на tableView, когда ячейка увеличивает высоту tableView.
2) Неисправная анимация, когда ячейка в действии расширения.
Действие переключения:
То, что я сделал ... Я добавил наблюдателя с RxSwift в HeaderView, когдазаголовок коснулся, я вызываю 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()
}
}
}