RxSwift and UIPickerView
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
Is there a way to bind a UIPickerView
with an Observable?
For example for a UITableView
I would do:
myObservableArray.bindTo(tableView.rx.items(cellIdentifier: "Identifier", cellType: MyCustomTableViewCell.self)) { (row, title, cell) in
cell.textLabel?.text = title
}
.disposed(by: disposeBag)
Is there something similar for UIPickerView
?
ios swift uipickerview rx-swift rx-cocoa
add a comment |
Is there a way to bind a UIPickerView
with an Observable?
For example for a UITableView
I would do:
myObservableArray.bindTo(tableView.rx.items(cellIdentifier: "Identifier", cellType: MyCustomTableViewCell.self)) { (row, title, cell) in
cell.textLabel?.text = title
}
.disposed(by: disposeBag)
Is there something similar for UIPickerView
?
ios swift uipickerview rx-swift rx-cocoa
There is nothing usable out of the box from RxSwift's repository. One could look at the code used forUITableView
bindings to come up with something similar forUIPickerView
, but you'd need a pretty good experience with RxSwift to get a grasp of how that works (at least, I tried and failed)
– tomahh
Feb 19 '17 at 9:32
1
Please take a look at this answer: stackoverflow.com/a/46225009/1953178
– Amro Shafie
Feb 4 '18 at 8:26
add a comment |
Is there a way to bind a UIPickerView
with an Observable?
For example for a UITableView
I would do:
myObservableArray.bindTo(tableView.rx.items(cellIdentifier: "Identifier", cellType: MyCustomTableViewCell.self)) { (row, title, cell) in
cell.textLabel?.text = title
}
.disposed(by: disposeBag)
Is there something similar for UIPickerView
?
ios swift uipickerview rx-swift rx-cocoa
Is there a way to bind a UIPickerView
with an Observable?
For example for a UITableView
I would do:
myObservableArray.bindTo(tableView.rx.items(cellIdentifier: "Identifier", cellType: MyCustomTableViewCell.self)) { (row, title, cell) in
cell.textLabel?.text = title
}
.disposed(by: disposeBag)
Is there something similar for UIPickerView
?
ios swift uipickerview rx-swift rx-cocoa
ios swift uipickerview rx-swift rx-cocoa
asked Feb 17 '17 at 18:36
TheoKTheoK
2,17521630
2,17521630
There is nothing usable out of the box from RxSwift's repository. One could look at the code used forUITableView
bindings to come up with something similar forUIPickerView
, but you'd need a pretty good experience with RxSwift to get a grasp of how that works (at least, I tried and failed)
– tomahh
Feb 19 '17 at 9:32
1
Please take a look at this answer: stackoverflow.com/a/46225009/1953178
– Amro Shafie
Feb 4 '18 at 8:26
add a comment |
There is nothing usable out of the box from RxSwift's repository. One could look at the code used forUITableView
bindings to come up with something similar forUIPickerView
, but you'd need a pretty good experience with RxSwift to get a grasp of how that works (at least, I tried and failed)
– tomahh
Feb 19 '17 at 9:32
1
Please take a look at this answer: stackoverflow.com/a/46225009/1953178
– Amro Shafie
Feb 4 '18 at 8:26
There is nothing usable out of the box from RxSwift's repository. One could look at the code used for
UITableView
bindings to come up with something similar for UIPickerView
, but you'd need a pretty good experience with RxSwift to get a grasp of how that works (at least, I tried and failed)– tomahh
Feb 19 '17 at 9:32
There is nothing usable out of the box from RxSwift's repository. One could look at the code used for
UITableView
bindings to come up with something similar for UIPickerView
, but you'd need a pretty good experience with RxSwift to get a grasp of how that works (at least, I tried and failed)– tomahh
Feb 19 '17 at 9:32
1
1
Please take a look at this answer: stackoverflow.com/a/46225009/1953178
– Amro Shafie
Feb 4 '18 at 8:26
Please take a look at this answer: stackoverflow.com/a/46225009/1953178
– Amro Shafie
Feb 4 '18 at 8:26
add a comment |
2 Answers
2
active
oldest
votes
As a matter of fact there is, in the RxCocoa library:
Example:
let items = Observable.just([
"First Item",
"Second Item",
"Third Item"
])
items
.bind(to: pickerView.rx.itemTitles) { (row, element) in
return element.title
}
.disposed(by: disposeBag)
There's also:
items
.bind(to: pickerView.rx.items) { (row, element, view) in
guard let myView = view as? MyView else {
let view = MyView()
view.configure(with: element)
return view
}
myView.configure(with: element)
return myView
}
.disposed(by: disposeBag)
add a comment |
Provided data source of your picker looks like this:
let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"],
["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ]
you could implement 'binding' you need in this way:
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)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f42305155%2frxswift-and-uipickerview%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
As a matter of fact there is, in the RxCocoa library:
Example:
let items = Observable.just([
"First Item",
"Second Item",
"Third Item"
])
items
.bind(to: pickerView.rx.itemTitles) { (row, element) in
return element.title
}
.disposed(by: disposeBag)
There's also:
items
.bind(to: pickerView.rx.items) { (row, element, view) in
guard let myView = view as? MyView else {
let view = MyView()
view.configure(with: element)
return view
}
myView.configure(with: element)
return myView
}
.disposed(by: disposeBag)
add a comment |
As a matter of fact there is, in the RxCocoa library:
Example:
let items = Observable.just([
"First Item",
"Second Item",
"Third Item"
])
items
.bind(to: pickerView.rx.itemTitles) { (row, element) in
return element.title
}
.disposed(by: disposeBag)
There's also:
items
.bind(to: pickerView.rx.items) { (row, element, view) in
guard let myView = view as? MyView else {
let view = MyView()
view.configure(with: element)
return view
}
myView.configure(with: element)
return myView
}
.disposed(by: disposeBag)
add a comment |
As a matter of fact there is, in the RxCocoa library:
Example:
let items = Observable.just([
"First Item",
"Second Item",
"Third Item"
])
items
.bind(to: pickerView.rx.itemTitles) { (row, element) in
return element.title
}
.disposed(by: disposeBag)
There's also:
items
.bind(to: pickerView.rx.items) { (row, element, view) in
guard let myView = view as? MyView else {
let view = MyView()
view.configure(with: element)
return view
}
myView.configure(with: element)
return myView
}
.disposed(by: disposeBag)
As a matter of fact there is, in the RxCocoa library:
Example:
let items = Observable.just([
"First Item",
"Second Item",
"Third Item"
])
items
.bind(to: pickerView.rx.itemTitles) { (row, element) in
return element.title
}
.disposed(by: disposeBag)
There's also:
items
.bind(to: pickerView.rx.items) { (row, element, view) in
guard let myView = view as? MyView else {
let view = MyView()
view.configure(with: element)
return view
}
myView.configure(with: element)
return myView
}
.disposed(by: disposeBag)
answered Nov 22 '18 at 23:37
Daniel T.Daniel T.
14.6k22735
14.6k22735
add a comment |
add a comment |
Provided data source of your picker looks like this:
let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"],
["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ]
you could implement 'binding' you need in this way:
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)
add a comment |
Provided data source of your picker looks like this:
let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"],
["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ]
you could implement 'binding' you need in this way:
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)
add a comment |
Provided data source of your picker looks like this:
let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"],
["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ]
you could implement 'binding' you need in this way:
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)
Provided data source of your picker looks like this:
let pickerDataSource: [[String]] = [ ["asdadadad", "sffgddfg"],
["sfsdasgag", "sdfasdfasfsf", "sdsfgagagaggs"] ]
you could implement 'binding' you need in this way:
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)
answered Aug 17 '17 at 15:45
Valeriy VanValeriy Van
1,7201319
1,7201319
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f42305155%2frxswift-and-uipickerview%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
There is nothing usable out of the box from RxSwift's repository. One could look at the code used for
UITableView
bindings to come up with something similar forUIPickerView
, but you'd need a pretty good experience with RxSwift to get a grasp of how that works (at least, I tried and failed)– tomahh
Feb 19 '17 at 9:32
1
Please take a look at this answer: stackoverflow.com/a/46225009/1953178
– Amro Shafie
Feb 4 '18 at 8:26