Size: a a a

2020 December 30

AA

A A in SwiftBook
Denis Kim
разная высота ячеек это всегда проблема. дело в том, что таблица не может правильно вычислить contentSize пока не начнет получать конкретные ячейки и их лэйаутить. для этого и существует estimatedRowHeight. при добавлении их сверху и анимации начнет меняться размер и оффсет со всеми вытекающими
Все работает независимо от высоты ячеек
источник

AA

A A in SwiftBook
Я сделал
источник

РС

Руслан Садыков... in SwiftBook
Перепробовал многое. Кто знает в чем причина?
источник

РС

Руслан Садыков... in SwiftBook
источник

РС

Руслан Садыков... in SwiftBook
источник

DK

Denis Kim in SwiftBook
насколько я помню общий подход был такой: мы берем какой-нибудь видимый элемент на экране, например первую ячейку из visibleCells, запоминаем ее frame и contentOffset для этого фрейма (типа ее смещение относительно фрейма), затем делаем модификации, снова берем эту ячейку (хотя она может быть уже вообще уехала за экран) и выставляем оффсет таким образом чтобы она снова была видна со смещением которое мы вычислили
источник

AA

A A in SwiftBook
источник

AA

A A in SwiftBook
вот рабочий код для такой ситуации, сделал его благодаря замечанию Дениса по поводу того что контентОфссет через присвоение задавать а не через setOffset
источник

DK

Denis Kim in SwiftBook
Руслан Садыков
Перепробовал многое. Кто знает в чем причина?
что за тип Point?
источник

AA

A A in SwiftBook
setOffset останавоивает анимацию
источник

В

Василий in SwiftBook
а вообще, с точки зрения производительности - есть принципиальная разница вставлять ячейку или релоадить всю таблицу?
источник

AA

A A in SwiftBook
Василий
а вообще, с точки зрения производительности - есть принципиальная разница вставлять ячейку или релоадить всю таблицу?
Насколлко я знаю reloadData умная и обновляет то что нужно
источник

DK

Denis Kim in SwiftBook
по большому счету разницы нет, смысл таблицы чтобы она работала только с тем что видно на экране, остальное попросту не существует. но надо понимать что релоад это когда тебе уже все равно что там будет. если моя память не спит с другим, релоад так же сбрасывает индексы выделенных ячеек
источник

В

Василий in SwiftBook
ну это в целом не проблема, если ты не пилишь списки с множественными выделениями..
источник

В

Василий in SwiftBook
получается, что insert как таковой заточен на красивое добавление ячейки и не более того?
источник

AA

A A in SwiftBook
Василий
ну это в целом не проблема, если ты не пилишь списки с множественными выделениями..
На самом деле в этом плане diffabbledatasource очень умная) она сравнивает тупо 2 snapshot и reloadData очень удобная ) все контроллируется руками и можно в другой поток даже выносить)
источник

В

Василий in SwiftBook
ну мне поддержка 12 ios нужна
источник

ВК

Варя Кузнецова... in SwiftBook
Василий
ну мне поддержка 12 ios нужна
так напиши какое-нибудь свое поделие, которое для 12 айоси будет сравнивать 2 снапшота и выкидывать тебе разницу
источник

ВК

Варя Кузнецова... in SwiftBook
ну или есть готовые Differenciator
источник

В

Василий in SwiftBook
спасибо, подумаю.
источник