使用ReactiveCocoa绑定到BOOL的反转

时间:2014-01-25 18:07:58

标签: objective-c reactive-cocoa

我想做与以下代码相反的事情:

RAC(self.activityIndicator, hidden) = RACObserve(self.playButton, selected);

选择播放按钮时,活动指示器应隐藏。

使用ReactiveCocoa执行此操作的最佳方法是什么?

3 个答案:

答案 0 :(得分:29)

有一个信号运算符,-not

RAC(self.activityIndicator, hidden) = [RACObserve(self.playButton, selected) not];

答案 1 :(得分:4)

map:就是您所需要的。

RAC(self.activityIndicator, hidden) = [RACObserve(self.playButton, selected) map:^id(id value) {
    return @(![value boolValue]);
}];

根据您从地图函数返回的内容,将信号转换为另一个信号。

答案 2 :(得分:0)

在较新版本的ReactiveCocoa / ReactiveSwift(v6.2.1)中,它看起来像这样:

var isButtonEnabled = MutableProperty<Bool>(true)

myImageView.reactive.isHidden <~ isButtonEnabled.negate()