前端之家收集整理的这篇文章主要介绍了
ReactiveCocoa-基础,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
-
- [self.usernameTF.rac_textSignalsubscribeNext:^(idx){
- NSLog(@"%@",x);
- }];
-
-
- [[filter:^BOOL(NSString*name){
- returnname.length>3;
- }]idx){
- NSLog(@"%@",x);
- }];
-
- //map:转换信号的类型
- [[self.passwordTF.rac_textSignalmap:^id(NSString*password){
- return@(password.length);
- }]//创建一个信号
- RACSignal*nameSignal=[NSString*name){
- return@(name.length>3);
- RACSignal*passwordSignal=[return@(password.length>4);
- //利用上一步所得的信号再进行条件判断
- //当不使用subscribeNext时上面的信号不会执行;
- [[nameSignalNSNumber*nameValue){
- return[nameValueboolValue]?[UIColorclearColor]:[UIColorgreenColor];
- UIColor*color){
- self.usernameTF.backgroundColor=color;
- [[passwordSignalNSNumber*passWordValue){
- return[passWordValueself.passwordTF.backgroundColor=color;
- //RAC宏允许您指定一个信号的输出对象的属性。它需要两个参数,第一个是包含属性设置的对象,第二个是属性名。每次信号发出下一个事件,是分配给给定属性的值。
- //下面这段代码与上面的作用相同
- RAC(self.usernameTF,backgroundColor)=[nameSignalself.passwordTF,backgroundColor)=[passwordSignal//结合信号
- RACSignal*siginSignal=[RACSignalcombineLatest:@[nameSignal,passwordSignal]reduce:^NSNumber*nameValue,NSNumber*passWordValue){
- return@([nameValueboolValue]&&[passWordValueboolValue]);
- [siginSignalNSNumber*siginValue){
- self.siginBtn.enabled=[siginValueboolValue];
- self.siginBtnrac_signalForControlEvents:UIControlEventTouchUpInside] NSLog(@"按钮被点击了");
- }];
原文链接:https://www.f2er.com/react/307791.html