Как использовать RxSwift с NVActivityIndicatorView? - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь использовать NVActivityIndicatorView с RxSwift и MVVM.Я расширяю NVActivityIndicatorView, как показано ниже:

extension Reactive where Base: NVActivityIndicatorView {

/// Bindable sink for `startAnimating()`, `stopAnimating()` methods.
public var isAnimating: Binder<Bool> {
    return Binder(self.base) { activityIndicator, active in
        if active {
            activityIndicator.startAnimating()
        } else {
            activityIndicator.stopAnimating()
        }
    }
}}

И привязываю данные вот так:

splashVM.loading.bind(to: NVActivityIndicatorView.rx.isAnimating).disposed(by: disposeBag)

но я получаю эту ошибку:

Instance member 'isAnimating' cannot be used on type 'Reactive<NVActivityIndicatorView>'

еслиЯ установил isAnimation статический, эта ошибка исчезает, но появляется другая ошибка:

Instance member 'base' cannot be used on type 'Reactive<Base>'

В чем проблема?что я должен изменить?

1 Ответ

1 голос
/ 16 марта 2019

Вы связываете это неправильно. Вам необходимо привязать к определенному виду индикатора активности, а не к классу:

let activityIndicatorView: NVActivityIndicatorView

splashVM.loading
    .bind(to: activityIndicatorView.rx.isAnimating)
    .disposed(by: disposeBag)
...