为自定义 UIControl 创建 ControlProperty

Create ControlProperty for custom UIControl

是否可以扩展结构 Reactive,其中基础 class 是我从 UIControl 继承的自定义控件?

当我尝试以下代码时:

extension Reactive where Base: CustomControl {

    public var value: ControlProperty<CGFloat> {

        return CustomControl.rx.value(

            self.base,

            getter: { customControl in
                customControl.customProperty
            },
            setter: { customControl, value in
                customControl.customProperty = value
            }
        )
    }
}

我收到以下错误:

Instance member "value" cannot be used on type 'Reactive<CustomControl>'

如果您能给我任何解释,我将不胜感激。

你可以检查这个link:https://github.com/ReactiveX/RxSwift/issues/991

方法 value 不是 public,因此您需要为其创建一个 public 版本。之后,就可以为您的自定义控件创建扩展了。