RxSectionedCollectionView
使用方法
这个库是对库 SectionedCollectionView 的响应式包装。
数据源
let sections = [
MySectionOfCustomData(header: "Fuits", items: [MyCustomData(name: "Banana", selected: false), MyCustomData(name: "Apple", selected: false), MyCustomData(name: "Pear", selected: false), MyCustomData(name: "Orange", selected: false), MyCustomData(name: "Peach", selected: false), MyCustomData(name: "Lemon", selected: false) ]),
MySectionOfCustomData(header: "Vegetables", items: [MyCustomData(name: "Tomato", selected: false), MyCustomData(name: "Onion", selected: false), MyCustomData(name: "Carrot", selected: false), MyCustomData(name: "Lettuce", selected: false), MyCustomData(name: "Potatoes", selected: false), MyCustomData(name: "Broccoli", selected: false), MyCustomData(name: "Peas", selected: false), MyCustomData(name: "Pumpkin", selected: false), MyCustomData(name: "Pepper", selected: false), MyCustomData(name: "Eggplant", selected: false), MyCustomData(name: "Cucumber", selected: false), MyCustomData(name: "Mushroom", selected: false)]),
MySectionOfCustomData(header: "Dairy Products", items: [MyCustomData(name: "Milk", selected: false), MyCustomData(name: "Cheese", selected: false), MyCustomData(name: "Yogurts", selected: false), MyCustomData(name: "Butter", selected: false), MyCustomData(name: "Cream", selected: false)]),
MySectionOfCustomData(header: "Drinks", items: [MyCustomData(name: "Coke", selected: false), MyCustomData(name: "Wine", selected: false), MyCustomData(name: "Water", selected: false), MyCustomData(name: "Orange Juice", selected: false), MyCustomData(name: "Tea", selected: false), MyCustomData(name: "Beer", selected: false)])
]
Observable.just(sections)
.bind(to: sectionedCollectionView.rx.items)
.disposed(by: disposeBag)
已选取的项目
要获取已选取的项目,您必须订阅到 selectedItems
可观察对象。
let selectedItems: Observable<[MyCustomData]> = sectionedCollectionView.rx.selectedItems()
selectedItems.subscribe(onNext: { selected in
//TODO: Implement that you want with the selected items.
}).disposed(by: disposeBag)
您可以通过订阅到 limitReached
可观察对象来知道当用户尝试选择一个项目,但已经达到选择限制时的情况。
sectionedCollectionView.rx.limitReached
.subscribe(onNext: { _ in
//TODO: Implement that you want when the limit is reached.
}).disposed(by: disposeBag)
示例
要运行示例项目,请首先克隆仓库,然后从 Example 目录运行 pod install
。
需求
安装
RxSectionedCollectionView 通过 CocoaPods 提供使用。要安装它,只需在您的 Podfile 中添加以下行
pod 'RxSectionedCollectionView'
作者
estebanarrua, [email protected]
许可
RxSectionedCollectionView 受 MIT 许可协议保护。有关更多信息,请参阅 LICENSE 文件。