gpt4 book ai didi

ios - 如何使用RxSwift实现 View 是否被按钮的点击状态(isSelected)隐藏

转载 作者:行者123 更新时间:2023-11-29 13:55:40 44 4
gpt4 key购买 nike

我想在选择按钮时隐藏 View ,在取消选择按钮时显示 View ,如何使用 RxSwift 实现?

最佳答案

当我创建自定义控件时,UIButton 中的复选框,我实际上很难观察到 isSelected 属性。但这里有一个简单的方法:

  1. UIButton 的子类(这是可选的,但通过这种方式,您的 Controller 中的代码行会更短)。

  2. 在您的自定义按钮中,订阅它自己的 .rx.tap

  3. 在您的按钮中有一个名为 isSelectedBinderBehaviorRelay

  4. 最后,您现在可以将实例化按钮的 isSelectedBinder 绑定(bind)到任何 View 的 .rx.isHidden

Controller

class ViewController: UIViewController {

@IBOutlet weak var button: MyButton!
@IBOutlet weak var someView: UIView!

let disposeBag = DisposeBag()

override func viewDidLoad() {
super.viewDidLoad()

self.button.isSelectedBinder
.bind(to: self.someView.rx.isHidden)
.disposed(by: disposeBag)
}
}

按钮

class MyButton: UIButton {
var isSelectedBinder = BehaviorRelay<Bool>(value: true)
let disposeBag = DisposeBag()

override func awakeFromNib() {
super.awakeFromNib()

weak var weakSelf = self

self.rx.tap.subscribe { _ in
print("TAP")
guard let strongSelf = weakSelf else { return }
strongSelf.isSelectedBinder.accept(!strongSelf.isSelectedBinder.value)
}.disposed(by: self.disposeBag)
}
}

关于ios - 如何使用RxSwift实现 View 是否被按钮的点击状态(isSelected)隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56288301/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com