swift中, 两个按钮Uibutton,默认选中第一个,点击第二个为选中状态,那第一个就是自动设置成不选择状态,用RxSwift,怎么写?
时间: 2024-03-05 14:52:28 浏览: 125
你可以使用 `RxSwift` 中的 `Observable` 和 `Binder` 来实现这个功能。首先,你需要创建一个 `BehaviorRelay` 对象来表示按钮的选中状态:
```swift
let button1Selected = BehaviorRelay(value: true)
```
然后,你可以使用 `button.rx.tap` 来订阅按钮的点击事件,并设置 `button1Selected` 的值:
```swift
button1.rx.tap
.map { false }
.bind(to: button1Selected)
.disposed(by: disposeBag)
button2.rx.tap
.map { true }
.bind(to: button1Selected)
.disposed(by: disposeBag)
```
最后,你可以使用 `button1Selected` 来设置按钮的选中状态:
```swift
button1Selected
.asDriver()
.drive(button1.rx.isSelected)
.disposed(by: disposeBag)
button1Selected
.map { !$0 }
.asDriver()
.drive(button2.rx.isSelected)
.disposed(by: disposeBag)
```
这样,当你点击第二个按钮时,第一个按钮就会自动变成不选中状态。
阅读全文