UITableView неверное смещение после .reloadSections - PullRequest
0 голосов
/ 30 апреля 2018

У меня следующий код, когда я нажимаю, чтобы показать / скрыть содержимое.

func showHideAssets() {
     isOpenHiddenAssets = !isOpenHiddenAssets

     tableView.beginUpdates()
     tableView.reloadSections(IndexSet(integer: 1), with: .fade)
     tableView.endUpdates()
}

Когда в первом разделе содержится много элементов, после перезагрузки таблицы разделов прокручивается до дна с неправильным смещением

func numberOfSections(in tableView: UITableView) -> Int {
     return 2
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
     if section == 0 {
          return 10
     }
     return isOpenHiddenAssets ? assetsHiddenItems.count : 0
}

Видео, где первый раздел состоит из 3 предметов. Это работает хорошо видео 1

Видео, где в первом разделе 10 пунктов. В ней есть ошибка. видео 2

1 Ответ

0 голосов
/ 30 апреля 2018

Решение заменяет

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

с

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...