Swift: анимировать расширяющиеся строки в UITableView?

В настоящее время у меня есть UITableView со строкой, возвращающей 0.0, которая затем расширяется, когда пользователь нажимает кнопку "показать больше". Когда это происходит, строка выше возвращает определенное значение в зависимости от высоты контейнера, что происходит немедленно. То, что я хотел бы сделать, - это создать какую-то анимацию, будучи расширенной / уменьшенной.

Вот мой код на данный момент:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    if indexPath.row == 2 && self.numberOfElements >= 2 {
        if detailsVisible == false {
            self.showMoreLabel.text = "Show more (\(self.numberOfElements - 1))"
            return 0.0
        }
        else {
            self.showMoreLabel.text = "Show less"
            return embedKonteringHeight
        }
    }
}

Где var detailsVisible возвращает логическое значение, если отображается расширяемый контент или нет.

Есть ли простой способ оживить это? Я думал о чем-то вроде простого счетчика увеличения / уменьшения, который возвращается heightForRowAtIndexPath в течение интервала.

1 ответ

Итак, после некоторого исследования я нашел метод, который работает очень хорошо. Я опубликую это здесь в случае, если кто-то хочет знать ответ.

В didSelectRowAtIndexPath мне просто нужно было заменить

tableView.reloadData()

с

tableView.beginUpdates()
tableView.endUpdates()
Другие вопросы по тегам