RxSwift - UIImageView - 观察属性突出显示



我正在尝试观察对象UIImageView上的属性"isHighlighted",但似乎我的代码不正确?知道吗?

imageView.rx
.observe(Optional<Bool>.self, "isHighlighted")
.subscribe {
}
.disposed(by: disposeBag)

当我设置突出显示的图像视图时,没有任何订阅。

将此扩展添加到您的项目中:

public extension Reactive where Base: UIImageView {
var isHighlighted: ControlEvent<Void> {
let source = self.methodInvoked(#selector(setter: Base.isHighlighted)).map { _ in }
return ControlEvent(events: source)
}
}

现在,您可以使用观察对isHighlighted属性的更改:

imageView.rx.isHighlighted.bind {
if imageView.isHighlighted {
// do something here
}
}

您可以尝试使用Bool.selfisHighlighted不是可选属性

imageView.rx
.observe(Bool.self, "isHighlighted")
.subscribe(onNext: { (isHighlighted) in
}).disposed(by: disposeBag)

您可以创建扩展:

extension Reactive where Base: UIImageView {
/// Bindable sink for `isHighlighted` property.
public var isHighlighted: Binder<Bool> {
return Binder(base) { imageView, isHighlighted in
imageView.isHighlighted = isHighlighted
}
}
} 

然后订阅它(或绑定它(:

self.imageview.rx
.isHighlighted
.subscribe(onNext: { [weak self] isHighlighted in
...
})

最新更新