BaQ*_*iWL 6 uipickerview ios swift rx-swift
items.bindTo(tableView.rx.items(cellIdentifier: "cellIdentifier", cellType: AttentionTableViewCell.self)){(row,dic,cell) in
cell.configueCell(with: dic)
}.addDisposableTo(dispose)
Run Code Online (Sandbox Code Playgroud)
也许你只需要更新你的 RxSwift 库版本。它看起来与 UI{Table|Collection}View rx 绑定非常相似。假设您有一个数据源,如:
let items: Observable<[String]> = Observable.of(["Row1", "Row2", "Row3"])
Run Code Online (Sandbox Code Playgroud)
要填充您的 UIPickerView:
items.bind(to: yourPickerView.rx.itemTitles) { (row, element) in
return element
}
.disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)
处理选定的项目:
yourPickerView.rx.itemSelected
.subscribe { (event) in
switch event {
case .next(let selected):
print("You selected #\(selected.row)")
default:
break
}
}
.disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)
Swift4 示例
Observable.just(["Yes", "No", "Maybe"])
.bind(to: picker.rx.itemTitles) { _, item in
return "\(item)"
}
.disposed(by: disposeBag)
picker.rx.itemSelected
.subscribe(onNext: { (row, value) in
NSLog("selected: \(row)")
})
.disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)
您的选择器提供的数据源如下所示:
let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"],
["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ]
Run Code Online (Sandbox Code Playgroud)
你可以这样实现“绑定”:
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7891 次 |
| 最近记录: |