2

我正在使用 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 网点。

但是,相反,调用 CardView (单元类)的 awakeFromNib 并且它运行良好。

有什么帮助吗?谢谢!

4

0 回答 0