我正在尝试观察对象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.self
isHighlighted
不是可选属性
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
...
})