如何用RXSwift实现UIPickerView
就像UITableView一样
items.bindTo(tableView.rx.items(cellIdentifier: "cellIdentifier", cellType: AttentionTableViewCell.self)){(row,dic,cell) in cell.configueCell(with: dic) }.addDisposableTo(dispose)
也许你只需要更新你的RxSwift库版本。 它看起来与UI {Table | Collection}视图rx绑定几乎相同。 假设您有一个数据源,如:
let items: Observable<[String]> = Observable.of(["Row1", "Row2", "Row3"])
要填充UIPickerView:
items.bind(to: yourPickerView.rx.itemTitles) { (row, element) in return element } .disposed(by: disposeBag)
处理所选项目:
yourPickerView.rx.itemSelected .subscribe { (event) in switch event { case .next(let selected): print("You selected #\(selected.row)") default: break } } .disposed(by: disposeBag)
提供的选择器数据源如下所示:
let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"], ["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ]
你可以用这种方式实现’绑定’:
pickerView.rx.itemSelected.subscribe(onNext: {[weak self](row,component) in guard let s = self else { return } s.label.text = s.pickerDataSource[component][row] }).disposed(by: disposeBag)