awakefromnib не вызывается для UICollectionReusableView при использовании источника данных RxSwift

Я использую RxSwift, мне удалось создать источник данных, и я правильно получаю ячейки. Проблема с разделом headerView. Я создал класс UICollectionReusableView, прикрепляя розетки из раскадровки.

Проблема в том, что я получаю представление с collectionview.dequeueReusableSupplementaryView, но awakeFromNib никогда не вызывается!

Вот как я настраиваю collectionView

collectionView.register(UINib(nibName: "CardView", bundle: Bundle.main), forCellWithReuseIdentifier: "cardView")
collectionView.register(AddNewCardCollectionHeaderView.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "AddNewCardCollectionHeaderView")

это мой класс UICollectionReusableView

class AddNewCardCollectionHeaderView: UICollectionReusableView {

    @IBOutlet weak var collectionViewRecommendations: UICollectionView!
    @IBOutlet weak var viewWrapperRecommendations: UIView!

    override func awakeFromNib() {
        super.awakeFromNib()

    }

}

И это источник данных

let dataSource = RxCollectionViewSectionedReloadDataSource<SectionOfItems>(configureCell: { (datasource, collectionview, indexPath, i) -> UICollectionViewCell in
            let cell = collectionview.dequeueReusableCell(withReuseIdentifier: "cardView", for: indexPath) as! CardView
            let card = self.getCard(atRow: indexPath.row, isCardRecommendation: false)
            self.setCell(card:card,cell:cell)
            return cell
        }, configureSupplementaryView: { (datasource, collectionview, kind, indexPath) -> UICollectionReusableView in
            let headerView = collectionview.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "AddNewCardCollectionHeaderView", for: indexPath) as! AddNewCardCollectionHeaderView
            return headerView
        })

Как awakeFromNib не вызывается, если я делаю например headerView. viewWrapperRecommendations это будет сбой как ноль, но мне нужно получить доступ к выходам headerView.

Но вместо этого вызывается awakeFromNib из CardView (класс ячейки), и он работает отлично.

Любая помощь? Спасибо!

0 ответов

Другие вопросы по тегам