Skip to content

Instantly share code, notes, and snippets.

@hamdan
Last active September 20, 2023 07:17
Show Gist options
  • Save hamdan/17b3c1508a8e5d902572ce916c57b1ad to your computer and use it in GitHub Desktop.
Save hamdan/17b3c1508a8e5d902572ce916c57b1ad to your computer and use it in GitHub Desktop.
Single Select Button Groups using rxswift
private let disposeBag = DisposeBag()
let selectedButton = Observable.from(
filterButtons.map { button in
button.rx.tap.map { button }
}
).merge()
filterButtons.forEach { button in
selectedButton.map { $0 == button }
.bind(to: button.rx.isSelected).disposed(by: disposeBag)
if button.filter == hasSelectedFilter {
button.isSelected = true
}
}
selectedButton.subscribe { [weak self] button in
self?.didTapButton(button.element?.tag)
}.disposed(by: disposeBag)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment