Сломанная анимация Swift 5 на расширяемых ячейках таблицы - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу реализовать расширяемую ячейку с динамическим представлением таблицы высот. Я сделал заголовок как заголовок и ячейки внутри как расширяемые ячейки. На данный момент у меня есть 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()
        }
    }
}
...