Навскидку у вас два варианта: произвести изменения непосредственно в ячейке или обновить источник данных и перезагрузить ячейку.
Первый вариант сложнее в реализации, не вполне соответствует архитектурному подходу, который Apple рекомендует использовать (нагрузка ячеек кучей функционала мешает оптимизациям и может привести к UI-лагам), и уместен в очень редких ситуациях, поэтому я не буду вдаваться в детали.
Второй вариант решает ~90% задач и реализуется максимально просто. У вас есть массив с модельками, к которому таблица обращается в методе tableView(_:cellForRowAt:)
. Когда нужно изменить содержимое ячейки, вы меняете данные массиве, а потом вызываете метод reloadRows(at:with:)
с индексом изменившегося элемента. Если приложение не поддерживает iOS 12 и более старые версии, перезагрузка ячеек может происходить автоматически — см. UITableViewDiffableDataSource
.