[英]How to observe if a property doesn't change for a specific interval in RxSwift
[英]RxSwift - UIImageView - observe property isHighlighted
我正在嘗試在對象UIImageView上觀察屬性“ isHighlighted”,但似乎我的代碼不正確? 任何想法?
imageView.rx
.observe(Optional<Bool>.self, "isHighlighted")
.subscribe {
}
.disposed(by: disposeBag)
當我將imageView設置為突出顯示時,沒有任何預訂。
你可以嘗試使用Bool.self
因為isHighlighted
不是可選屬性
imageView.rx
.observe(Bool.self, "isHighlighted")
.subscribe(onNext: { (isHighlighted) in
}).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
}
}
您可以創建一個擴展:
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
...
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.