? 1.RACSignal *validUsernameSignal =? [self.usernameTextField.rac_textSignal? map:^id(NSString *text) {? return @([self isValidUsername:text]);? }];?
? ?RACSignal *validPasswordSignal =? [self.passwordTextField.rac_textSignal? ? map:^id(NSString *text) {? ? return @([self isValidPassword:text]);? }];??
? 創(chuàng)建有效狀態(tài)信號(hào),map起到的作用就是做判斷,如果是有效的輸入則返回值,否則就不返回
? 2.RAC(self.passwordTextField, backgroundColor) =
[validPasswordSignal map:^id(NSNumber *passwordValid){
return[passwordValid boolValue] ? [UIColor clearColor]:[UIColor yellowColor];
}];
RAC(self.usernameTextField, backgroundColor) =
[validUsernameSignal map:^id(NSNumber *passwordValid){
return[passwordValid boolValue] ? [UIColor clearColor]:[UIColor yellowColor];
}];
進(jìn)一步改善代碼,map做判斷,為真返回clearcolor,假則返回yellowcolor[objc]?
? 3.[[validPasswordSignal map:^id(NSNumber *passwordValid){
return[passwordValid boolValue] ? [UIColor clearColor]:[UIColor yellowColor];
}]
subscribeNext:^(UIColor *color){
self.passwordTextField.backgroundColor = color;
}];
這是完整的代碼,map接收輸入的text,做判斷,真就返回clearcolor,假則返回yellowcolor,subscribeNext則將接收到的color作為textfield的背景顏色