gpt4 book ai didi

ios - 带有 RxSwift 的 collectionView 不显示任何项目

转载 作者:可可西里 更新时间:2023-11-01 01:25:44 24 4
gpt4 key购买 nike

我正在尝试创建一个 collectionView 并使用 RxSwift 将数据填充到其中。然而,即使它似乎返回 datasource.configureCell 中的对象,它也没有显示任何单元格。我怀疑我在 viewDidLoad 中的设置有问题?

设置collectionView

    // Create a waterfall layout
let layout = CHTCollectionViewWaterfallLayout()

//Add CollectionView
self.collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height), collectionViewLayout: layout)

self.view.addSubview(collectionView)

//Customize
self.collectionView!.alwaysBounceVertical = true

// Collection view attributes
self.collectionView.autoresizingMask = [UIViewAutoresizing.flexibleHeight, UIViewAutoresizing.flexibleWidth]
self.collectionView.alwaysBounceVertical = true

//Register cell
collectionView.register(PetsaleCell.self, forCellWithReuseIdentifier: reuseIdentifier)


//Constraints
self.collectionView.snp.makeConstraints({ make in
make.bottom.equalTo(0)
make.left.equalTo(0)
make.right.equalTo(0)
make.top.equalTo(0)

})

//Datasource
setUpDataSource()

设置数据源

func setUpDataSource() {
dataSource.configureCell = { (_, tv, ip, animal: Animal) in

let cell = tv.dequeueReusableCell(withReuseIdentifier: self.reuseIdentifier, for: ip) as! PetsaleCell
cell.petCellViewModel = PetCellViewModel(animal: animal)

return cell
}



let loadNextPageTrigger = self.collectionView.rx.contentOffset
.flatMap { _ in
self.collectionView
.isNearBottomEdge(edgeOffset: 20.0)
? Observable.just(())
: Observable.empty()
}

animalViewModel.rx_animals(loadNextPageTrigger)
.asDriver(onErrorJustReturn: .empty).map { [SectionModel(model: "Animal", items: $0.animals)] }
.drive(collectionView.rx.items(dataSource: dataSource))
.addDisposableTo(disposeBag)
}


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
return CGSize(width: 200, height: 200)
}

最佳答案

您需要在数据源绑定(bind)之后设置您的委托(delegate)。

collectionView
.rx.delegate
.setForwardToDelegate(self, retainDelegate: false)

关于ios - 带有 RxSwift 的 collectionView 不显示任何项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41663930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com