如何使用RxSwift来实现视图是否被按钮的单击状态隐藏(isSelected)

时间:2019-05-24 08:03:53

标签: ios

我想在选择按钮时隐藏视图,而在取消选择按钮时显示视图,如何使用RxSwift进行显示呢?

1 个答案:

答案 0 :(得分:0)

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

  1. UIButton子类化(这是可选的,但是通过这种方式,您的控制器中的行会更短)。

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

  3. 按钮中有一个名为BehaviorRelay的{​​{1}}。

  4. 最后,您现在可以将实例化按钮的isSelectedBinder绑定到任何视图的isSelectedBinder

控制器

.rx.isHidden

按钮

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)
    }
}