Можно ли приостановить поток данных с помощью флага с помощью RxSwift? - PullRequest
0 голосов
/ 19 марта 2020

Прежде всего, вот мой код

viewModel.price
            .drive(collectionView.rx.items(cellIdentifier: "Cell")) { (index: Int, Info, cell: Cell) in 
                 ....
          }.disposed(by: disposeBag)

Тип данных viewModel.price: Драйвер <[Info]>

В этом коде я хочу добавить флаг для приостановки collectionView.
Когда флаг из viewModel имеет значение «true», продолжайте рисовать collectionView, но если он «false», остановите его.

Я думаю, что мне нужно использовать combLatest и takeWhile , но не уверен, как это использовать.

как мне использовать ОбъединитьПоследние и Взять хотя бы для моего кода?

1 Ответ

2 голосов
/ 19 марта 2020

Попробуйте это:

Driver.combineLatest(viewModel.price, viewModel.shouldDraw)
    .filter { $1 }
    .map { $0.0 }
    .drive(collectionView.rx.items(cellIdentifier: "Cell")) { (index: Int, Info, cell: Cell) in 
             ....
    }.disposed(by: disposeBag)
...