С ReactiveCocoa привязать к обратному BOOL
Я хотел бы сделать противоположность следующего кода:
RAC(self.activityIndicator, hidden) = RACObserve(self.playButton, selected);
Когда кнопка воспроизведения выбрана, индикатор активности НЕ должен быть скрыт.
Каков наилучший способ сделать это с помощью ReactiveCocoa?
2 ответа
Решение
Для этого есть оператор сигнала, -not
,
RAC(self.activityIndicator, hidden) = [RACObserve(self.playButton, selected) not];
map:
это то, что вам нужно.
RAC(self.activityIndicator, hidden) = [RACObserve(self.playButton, selected) map:^id(id value) {
return @(![value boolValue]);
}];
Это преобразует сигнал в другой в зависимости от того, что вы возвращаете из функции карты.
В более новых версиях ReactiveCocoa/ReactiveSwift (v6.2.1) это будет выглядеть так:
var isButtonEnabled = MutableProperty<Bool>(true)
myImageView.reactive.isHidden <~ isButtonEnabled.negate()