我正在使用 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 并且它运行良好。
有什么帮助吗?谢谢!