Swift: добавление строки в верхнюю часть при прокрутке вниз - переходы tableView - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть tableView с динамической высотой ячеек.

Если я добавлю новую ячейку в верхнюю часть при прокрутке до конца, она оживит правильно.

Но если я добавлюячейка к вершине, пока я прокручиваюсь, мой tableView просто прыгает.


Есть ли способ сделать это гладким?Или, что еще лучше, оставайтесь на месте?

Видео : https://youtu.be/wLNV_Kmkq0M


Код для расчета высоты:

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

        return UITableViewAutomaticDimension
    }
    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
        if indexPath.section == 1 || indexPath.section == 2 {
            return WorldMessageIdsStore.shared.nearby.getCellHeight(indexPath: indexPath, expanded : self.currentSelectedIndexPath == indexPath ? true : false, depending: indexPath.section == 1 ? true : false ) ?? UITableViewAutomaticDimension
        } else {
            return UITableViewAutomaticDimension
        }
    }

Код для добавления ячейки:

WorldMessageIdsStore.shared.worldMessages = newWorldMessages // updating the model
self.tableView.beginUpdates()
self.tableView.deleteRows(at: deleteIndexes, with: .fade)
self.tableView.insertRows(at: insertIndexes, with: .fade)
self.tableView.endUpdates()

Может ли кто-нибудь мне помочь?

...