Обновлять заголовок CollectionView AdditionalView, когда он выключен
У меня есть представление, похожее на ленту главных историй Instagram. У меня есть горизонтальное представление коллекции в верхней части, где у меня есть ячейка заголовка AdditionalView, которая выглядит так же, но действует по-разному с остальными ячейками.
Я пытаюсь обновить объекты в дополнительном видении, что мне удалось сделать с помощью следующего кода...
@objc func uploadCompleted() {
DispatchQueue.main.async {
self.collectionView.performBatchUpdates({
if let myCell = self.collectionView.supplementaryView(forElementKind: UICollectionElementKindSectionHeader, at: IndexPath(item: 0, section: 0)) as? MyCollectionReusableView {
// Do your stuff here
myCell.nameLbl.textColor = .black
...
}
}, completion: nil)
}
}
Это прекрасно работает, когда ячейка видна, однако, когда ячейка удаляется с экрана во время этого вызова, она не обновляется.
Есть идеи как обойти это? Или лучший подход к обновлению только первой ячейки в представлении коллекции, а не остальных.
Спасибо
1 ответ
Заголовок не ноль, когда он виден вам нужно
var color = UIColor.red
И внутри viewForSupplementaryElementOfKind
func collectionView(_ collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String,
at indexPath: IndexPath) -> UICollectionReusableView
let myCell = //
myCell.nameLbl.textColor = color
return myCell
}
Потом перешить color
где и когда вы захотите после того, как заголовок появится снова, он будет изменен на последний цвет
@objc func uploadCompleted() {
DispatchQueue.main.async {
self.color = UIColor.black
self.collectionView.performBatchUpdates({
if let myCell = self.collectionView.supplementaryView(forElementKind: UICollectionElementKindSectionHeader, at: IndexPath(item: 0, section: 0)) as? MyCollectionReusableView {
// Do your stuff here
myCell.nameLbl.textColor = self.color
...
}
}, completion: nil)
}
}