在可扩展tableView单元格上的Swift 5残破动画

时间:2019-11-07 10:32:47

标签: swift tableview cell

我想用动态高度表视图实现可扩展单元格。我将标头作为标题,将内部的单元作为可扩展单元。现在我有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()
        }
    }
}

0 个答案:

没有答案