UITableView выскакивает после begin / endUpdates при использовании UITableViewAutomaticDimension [duplicate]

На этот вопрос уже есть ответ:

reloadData () UITableView с динамической высотой ячейки вызывает скачкообразную прокрутку 13 ответов

Проблем: Когда я нахожусь надн изUITableView (и только когда внизу) иtableView.beginUpdates()/tableView.endUpdates() называется,UITableView немного подпрыгивает. Я не хочу этого делать.

Настроить У меня естьUITableView сUITableViewCells это будут разные размеры, и я используюUITableViewAutomaticDimension чтобы размер клеток.

Пример Когда я вниUITableView и я выбираю ячейку, которая впоследствии вызываетtableView.beginUpdates()/tableView.endUpdates(),UITableView прокручивается / немного подпрыгивает.

Кто-нибудь нашел способ сделать это, чтобы после звонка не было нервовtableView.beginUpdates()/tableView.endUpdates() в то время как в концеUITableView?

Пока я вычисляю все своиUITableViewCells вручную, я бы предпочел этого не делать, потому что хотел бы воспользоватьсяUITableViewAutomaticDimension.

Ко:

Вот код для отображения того, что происходит междуtableView.beginUpdates()/tableView.endUpdates():

    tableView.beginUpdates()
    cell!.setNeedsUpdateConstraints()
    cell!.updateConstraintsIfNeeded()
    cell!.setNeedsLayout()
    cell!.layoutIfNeeded()
    tableView.endUpdates()

Мой видВилл

public override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.tableView.estimatedRowHeight = 150.0
    self.tableView.rowHeight = UITableViewAutomaticDimension


    self.tableView.reloadData()
    //Bug in 8.0+ forces us to call three extra methods to get dynamic cell heights to work correctly...
    self.tableView.setNeedsLayout()
    self.tableView.layoutIfNeeded()
    self.tableView.reloadData()
}

My heightForRow:

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

    return UITableViewAutomaticDimension

}

Обновит: Удалениеcell!.setNeedsUpdateConstraints(), cell!.updateConstraintsIfNeeded(), cell!.setNeedsLayout(), а такжеcell!.layoutIfNeeded() отtableView.beginUpdates()/tableView.endUpdates() появляется, чтобы остановить прыжки, но тогда мои клетки не меняют размер ...

Редактироват: Это происходит только когда надн изUITableView.

Ответы на вопрос(4)

Ваш ответ на вопрос