簡體   English   中英

RxSwift-UIImageView-觀察屬性isHighlighted

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM