Как изменить высоту uitableviewcell после tableView.reloadData

Я работаю над клиентом, похожим на твиттер, и есть представление списка сообщений, реализованное UITableView. Для каждой ячейки может потребоваться загрузить изображение динамического размера, и изображение загружается асинхронно. Таким образом, размер изображения неизвестен при загрузке табличного представления.

Можно ли обновить высоту uitableviewcell после загрузки изображения.

Насколько мне известно, единственный способ обновить высоту - это следующий метод: - (CGFloat) tableView: (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath Но он просто вызывается при загрузке данных в первый раз. Это разумно с точки зрения производительности. В любом случае, есть ли способ изменить высоту позже?

Спасибо за любую информацию!

Наконец, я использовал reloadRowsAtIndexPaths для обновления определенных строк, вы можете попробовать это для скрытых ячеек.

[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:toReloadRows withRowAnimation: UITableViewRowAnimationNone];
[self.tableView endUpdates];

Но при обновлении высоты видимых ячеек ячейка трясется. Поэтому лучше рассчитать высоту ячейки заранее.

14
задан Fourj 28 April 2011 в 18:39
поделиться