如何使用Driver ?]类型的属性来更改Driver 类型的属性的值。 我是RxSwift的新手,对这个问题的构架感到很抱歉,但我找不到合适的术语。 因此,基本上我在一个结构中有一个let infoIconTapped: Driver<Void>,而在另一个结构中有let shouldShowInfoPopup: Driver<Bool>。 我想做的是我想使用shouldShowInfoPopup将true的值更改(或驱动)为false或infoIconTapped。仅应使用Driver完成此操作。 有关如何执行此操作的任何想法? 我是RxSwift的新手,对这个问题的构想很糟糕,但我找不到合适的术语,我深表歉意。所以基本上我有一个infoIconTapped:Driver 在一个结构中,并且我有... 听起来您想要做的就是根据按钮的轻触来切换弹出窗口的可见性。如果是这样,则您需要保持状态,这意味着要使用.scan运算符。 func shouldShowInfoPopup(infoIconTapped: Driver<Void>) -> Driver<Bool> { return infoIconTapped .scan(false) { current, _ in !current } .startWith(false) } 上面是一个自由函数(不在任何类或结构中),可以这样使用: let showInfo = shouldShowInfoPopup(infoIconTapped: infoIconTapped) 如果您 必须 将函数放在类或结构中,然后将其放在Driver本身的扩展中,如下所示:extension SharedSequence where SharingStrategy == DriverSharingStrategy { var shouldShowInfoPopup: Driver<Bool> { scan(false) { current, _ in !current } .startWith(false) } } 可以这样使用: let shouldShowInfoPopup = infoIconTapped.shouldShowInfoPopup

问题描述 投票:1回答:1
我是RxSwift的新手,对这个问题的构架感到很抱歉,但我找不到合适的术语。

因此,基本上我在一个结构中有一个let infoIconTapped: Driver<Void>,而在另一个结构中有let shouldShowInfoPopup: Driver<Bool>

我想做的是我想使用shouldShowInfoPopuptrue的值更改(或驱动)为falseinfoIconTapped。仅应使用Driver完成此操作。

有关如何执行此操作的任何想法?

我是RxSwift的新手,对这个问题的构想很糟糕,但我找不到合适的术语,我深表歉意。所以基本上我有一个infoIconTapped:Driver

在一个结构中,并且我有...

ios observable rx-swift
1个回答
0
投票
听起来您想要做的就是根据按钮的轻触来切换弹出窗口的可见性。如果是这样,则您需要保持状态,这意味着要使用.scan运算符。

func shouldShowInfoPopup(infoIconTapped: Driver<Void>) -> Driver<Bool> { return infoIconTapped .scan(false) { current, _ in !current } .startWith(false) }

上面是一个自由函数(不在任何类或结构中),可以这样使用:
© www.soinside.com 2019 - 2024. All rights reserved.