RxSectionedCollectionView 1.1.3

RxSectionedCollectionView 1.1.3

Esteban Arrua 维护。



 
依赖关系
SectionedCollectionView~> 1.1.4
RxSwift~> 4.0
RxCocoa~> 4.0
 

  • estebanarrua

RxSectionedCollectionView

Version License Platform Swift 4.0

使用方法

这个库是对库 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 文件。