Представление моей коллекции имеет динамический макет и несколько типов ячеек / заголовков, и я хотел бы применить цвет фона только к определенным типам заголовков.Я безуспешно пытался определить IndexPath
этих заголовков во время выполнения:
class MyCustomLayout: UICollectionViewFlowLayout {
private var backgroundAttrs = [UICollectionViewLayoutAttributes]()
override func prepare() {
super.prepare()
guard let numberOfSections = collectionView?.numberOfSections else { return }
backgroundAttrs.removeAll()
for section in 0 ..< numberOfSections {
if let header = collectionView?
.supplementaryView(forElementKind: UICollectionElementKindSectionHeader,
at: IndexPath(item: 0, section: section)) as? HeaderThatNeedsBackground,
let attr = getBackgroundAttribute(forSection: section) {
backgroundAttrs.append(attr)
}
}
}
...
}
supplementaryView(forElementKind:, at:)
продолжает давать мне nil
, поэтому цикл никогда не выполняется.Я думаю, что клетки еще не созданы в данный момент?Буду признателен за любые советы о том, как выборочно применять атрибут макета на основе типа ячейки / заголовка