UICollectionView和UITableView的方法大部分类似,就不重复了,区别主要是组头组尾
//分区头部、尾部将要显示出来的事件响应
collectionView.rx.willDisplaySupplementaryView.subscribe(onNext: { view, kind, indexPath in
print("将要显示分区indexPath为:\(indexPath)")
print("将要显示的是头部还是尾部:\(kind)")
print("将要显示头部或尾部视图:\(view)\n")
}).disposed(by: disposeBag)
//创建数据源
let dataSource = RxCollectionViewSectionedReloadDataSource
<SectionModel<String, String>>(
configureCell: { (dataSource, collectionView, indexPath, element) in
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell",
for: indexPath) as! MyCollectionViewCell
cell.label.text = "\(element)"
return cell},
configureSupplementaryView: {
(ds ,cv, kind, ip) in
let section = cv.dequeueReusableSupplementaryView(ofKind: kind,
withReuseIdentifier: "Section", for: ip) as! MySectionHeader
section.label.text = "\(ds[ip.section].model)"
return section
})
-
样式修改
collectionView 单元格尺寸、间距,或者修改 section 头尾视图尺寸等等,RxSwift 没有封装相应的方法,我们通过代理方法来设置
//设置代理
collectionView.rx.setDelegate(self)
.disposed(by: disposeBag)
参考文章:Swift - RxSwift的使用详解37(UICollectionView的使用1:基本用法)
Swift - RxSwift的使用详解38(UICollectionView的使用2:RxDataSources)
Swift - RxSwift的使用详解39(UICollectionView的使用3:刷新集合数据)
Swift - RxSwift的使用详解40(UICollectionView的使用4:样式修改)
网友评论