2017-02-17 9 views
5

Czy istnieje sposób związania UIPickerView z obserwowalnym?RxSwift i UIPickerView

Na przykład dla UITableView zrobiłbym:

myObservableArray.bindTo(tableView.rx.items(cellIdentifier: "Identifier", cellType: MyCustomTableViewCell.self)) { (row, title, cell) in 
     cell.textLabel?.text = title 
    } 
    .disposed(by: disposeBag) 

Czy jest coś podobnego do UIPickerView?

+0

Nic użytku po wyjęciu z pudełka z repozytorium RxSwift za . Można spojrzeć na kod użyty do powiązań 'UITableView', aby wymyślić coś podobnego do' UIPickerView', ale będziesz potrzebował całkiem dobrego doświadczenia z RxSwift, aby uzyskać zrozumienie jak to działa (przynajmniej, ** I * * wypróbowany i nie powiodło się) – tomahh

+1

Proszę spojrzeć na tę odpowiedź: https://stackoverflow.com/a/46225009/1953178 –

Odpowiedz

0

warunkiem źródło danych swojej kompletacji wygląda następująco:

let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"], 
            ["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ] 

można wdrożyć „wiążące” trzeba w ten sposób:

pickerView.rx.itemSelected.subscribe(onNext: { [weak self] row, component in 
    guard let s = self else { return } 
    s.label.text = s.pickerDataSource[component][row] 
}).addDisposableTo(disposeBag)