Как обновить конкретную строку UICollectionView вместо перезагрузки всего представления коллекции? - PullRequest
0 голосов
/ 23 декабря 2019

Как обновить конкретную строку / ячейку UICollectionView вместо перезагрузки всего представления коллекции?

Ответы [ 3 ]

0 голосов
/ 23 декабря 2019

Если вы можете получить indexPath из collectionview. Вы можете просто обновить cell UI, используя код ниже.

let indexpath = IndexPath(row:index, section: 0)
collectionView.cellForItem(at: indexpath)?.updateLblStr = ""
0 голосов
/ 23 декабря 2019

Вы можете перезагрузить UICollectionView, используя:

collectionView.reloadItems(at: [IndexPath])
collectionView.reloadSections(IndexSet)

Реализация (пример)

collectionView.performBatchUpdates({
        collectionView.reloadItems(at: [indexPath])
    }) { (isUpdated) in
        // Finish loading else any handling
    }

Apple Документация :

open func reloadSections(_ sections: IndexSet)
open func reloadItems(at indexPaths: [IndexPath])

Перед перезагрузкой обязательно проверьте и обновите массив.

Спасибо

0 голосов
/ 23 декабря 2019

Попробуйте это

var indexPaths = [IndexPath]()

if let collectionView = collectionView { // Swift4
    collectionView.reloadItemsAtIndexPaths(indexPaths)
}

if let collectionView = collectionView { // Swift5
    collectionView.reloadItems(at: indexPaths)
}

'indexPaths' - это массив индекса ячеек, который вы хотите обновить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...