我正在尝试观察对象UIImageView上的属性“ isHighlighted”,但似乎我的代码不正确?有想法吗?
function is_prime($p) {
return ($p > 1) && (($p%2 >= 1) && ($p%3 >= 1) && ($p%5 >= 1)) || in_array($p, [2,3,5]);
}
当我将imageView设置为突出显示时,没有任何预订。
答案 0 :(得分:0)
您可以尝试使用Bool.self
吗,因为isHighlighted
不是可选属性
imageView.rx
.observe(Bool.self, "isHighlighted")
.subscribe(onNext: { (isHighlighted) in
}).disposed(by: disposeBag)
答案 1 :(得分:0)
将此扩展添加到您的项目中:
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
}
}
答案 2 :(得分:-1)
您可以创建扩展程序:
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
...
})