Предположим, вы настраиваете свой collectionView следующим образом
Вы используете макет потока по умолчанию.так что вы можете добавлять метки в верхний и нижний колонтитулы.и в метке нижнего колонтитула установите для этого тега значение 1001 (или любое другое число, которое вам нравится).
Идентификатор заголовка - «заголовок», а нижний колонтитул - «нижний колонтитул».UICollectionElementKindSectionHeader определен в классе макета потока (см. Документацию.)
Теперь вы можете перезагрузить верхний и нижний колонтитулы следующим образом:
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView{
let cell = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: (kind == UICollectionElementKindSectionHeader ? "header": "footer"), for: indexPath)
// Configure the cell
return cell
}
Когда вы пытаетесь изменить содержимое меток в нижнем колонтитуле, вам не нужно обновлять нижний колонтитул.Вы можете позвонить в любое место в вашем приложении.Я называю это формой ячейки для удобства выполнения теста.
override func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool {
let footView = collectionView.supplementaryView(forElementKind: UICollectionElementKindSectionFooter, at: IndexPath.init(row: 0, section: 1))
if let label = footView?.viewWithTag(1001) as? UILabel{
label.text = "AnyThing"
}
Здесь я использую IndexPath.init (строка: 0, раздел: 1), который является вторым разделом.Теперь вы видите результат.
Это самый простой пример.CollectionView может быть очень сложным и стоить книгу для всех видов приложений и примеров.Надеюсь, это поможет вам.