Как изменить высоту ячейки после загрузки изображения

swift

#1

Всем доброго времени суток
Проблема такая
Хочу чтобы изображения имеющие разный размер, изменяли свою высоту в зависимости от ширины устройства
Имеется tableview с новостями, типа в вк
Для отображения изображений из url я использую kingfisher
Вот код:
cell.image_of_new.kf.indicatorType = .activity
cell.image_of_new.kf.setImage(
with: url,
placeholder: UIImage(named: “placeholderImage”),
options: [
.scaleFactor(UIScreen.main.scale),
.transition(.fade(1)),
.cacheOriginalImage
])
{
result in
let newHeight = (self.tableview.frame.width * CGFloat(result.value?.image.size.height ?? 100)) / CGFloat(result.value?.image.size.width ?? 100)
cell.image_height.constant = newHeight

    }  

Как видите после result in я вычисляю высоту, затем меняю высоту изображения на новую cell.image_height.constant = newHeight
Как обновить ячейку после того как высота изображения поменялась
Я пробовал разные варианты, но это не подходит, ячейки скачут, или уходят в бесконечный цикл и таблица стоит:
cell.setNeedsLayout()

cell.layoutIfNeeded()  
------------------------
self.tableView.beginUpdates();
self.tableView.endUpdates();
------------------------
self.tableView.reloadRows(at: [indexPath], with: .automatic)
------------------------
DispatchQueue.main.async {
let newHeight = (self.tableview.frame.width * CGFloat(result.value?.image.size.height ?? 100)) / CGFloat(result.value?.image.size.width ?? 100)
                    cell.image_height.constant = newHeight
}
-------------------------

Как правильно решить эту проблему, кто сталкивался с этим? Как правильно сделать такую новостную ленту?


#2

Вот)

https://developer.apple.com/documentation/uikit/uitableview/1614908-beginupdates

https://developer.apple.com/documentation/uikit/uitableview/1614890-endupdates


#3

Я пытался провернуть это
Но когда листал tableview вниз, страницы подгружались и иногда случалось такое что 2 ячейки как будто “склеивались” одна поверх другой


#4

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

а это как будет выглядеть все


#5

Оч, полезно!
Тож буду ждать)


#6

Спасибо
Буду ждать его