首页 > 解决方案 > 如何将控制事件添加到 RxCocoa 中的自定义按钮?

问题描述

如何将 .tap 方法添加到自定义按钮,即。<myCustomButton>.rx.tap在 RxSwift/RxCocoa 中,这样我就可以将按钮的点击绑定到一个 observable。

CircularButton.swift

class UICircularButton: UIButton {
    override func layoutSubviews() {
        super.layoutSubviews()

        clipsToBounds = true
        subviews.first?.contentMode = .center

        let layer: CALayer = self.layer
        layer.cornerRadius = self.frame.size.width / 2
        layer.masksToBounds = true
    }
}

ViewController.swift

let transferButton: UIActionButton = {
        let button = UICircularButton(type: .system)
        button.setBackgroundImage(#imageLiteral(resourceName: "transfer"), for: .normal)
        button.backgroundColor = Colors.trueGreen
        return UIActionButton(button: button, actionLabel: "Transfer")
    }()

// Question
func configureBinding() {
        // How do I do this
        transferButton.rx.tap
            .bind(to: ...)
            .dispose(by: ...)
    }

标签: iosswiftuibuttonrx-swiftrx-cocoa

解决方案


您不需要定义它,它已经被定义UIButton并且您的自定义类继承了它。


推荐阅读