同じ問題がありました。それを解決するRxCollectionViewSectionedReloadDataSource
このタイプのデータソースにはヘッダー/フッターがあります。標準の1つRxCollectionViewReactiveArrayDataSourceにはヘッダー/フッターがありません。
RxCocoaの場合でも、UICollectionView+Rx拡張子はRxCollectionViewSectionedReloadDataSourceを例として示しています。
例:
let dataSource = RxCollectionViewSectionedReloadDataSource<SectionModel<String, Double>>()
let items = Observable.just([
SectionModel(model: "First section", items: [
1.0,
2.0,
3.0
]),
SectionModel(model: "Second section", items: [
1.0,
2.0,
3.0
]),
SectionModel(model: "Third section", items: [
1.0,
2.0,
3.0
])
])
dataSource.configureCell = { (dataSource, cv, indexPath, element) in
let cell = cv.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! NumberCell
cell.value?.text = "\(element) @ row \(indexPath.row)"
return cell
}
items
.bind(to: collectionView.rx.items(dataSource: dataSource))
.disposed(by: disposeBag)
私はあなたのソリューションを試してみました、それは助けにはなりませんでした。私の前提は、UICollectionViewDataSourceプロトコルで定義されたfunc collectionView(collectionView:UICollectionView、viewForSupplementaryElementOfKind kind:String、atIndexPath indexPath:NSIndexPath)がRxSwiftによって実装されていることです。それ以外に何ができますか?たぶん、私の質問をより多くの情報で更新する必要がありますか? – alexxjk
基本的にすべてのコードを手渡す必要があるので、もっと情報を追加すると助けになるとは思わない。私は 'UICollectionView'チュートリアルをチェックアウトし、それを正確にフォローして、何かがベースとして機能するようにすることをお勧めします。そこから修正してください。 – solidcell