ReactiveCocoa-基础
来源:互联网 发布:中国农村淘宝研究报告 编辑:程序博客网 时间:2024/06/18 13:39
//subscribeNext:传递给下一个执行 [self.usernameTF.rac_textSignal subscribeNext:^(id x) { NSLog(@"%@",x); }]; //filter:过滤信号 [[self.usernameTF.rac_textSignal filter:^BOOL(NSString *name) { return name.length > 3; }] subscribeNext:^(id x) { NSLog(@"%@",x); }]; //map:转换信号的类型 [[self.passwordTF.rac_textSignal map:^id(NSString *password) { return @(password.length); }] subscribeNext:^(id x) { NSLog(@"%@",x); }]; //创建一个信号 RACSignal *nameSignal = [self.usernameTF.rac_textSignal map:^id(NSString *name) { return @(name.length > 3); }]; RACSignal *passwordSignal = [self.passwordTF.rac_textSignal map:^id(NSString *password) { return @(password.length > 4); }]; //利用上一步所得的信号再进行条件判断 //当不使用subscribeNext时上面的信号不会执行; [[nameSignal map:^id(NSNumber *nameValue) { return [nameValue boolValue] ? [UIColor clearColor] : [UIColor greenColor]; }] subscribeNext:^(UIColor *color) { self.usernameTF.backgroundColor = color; }]; [[passwordSignal map:^id(NSNumber *passWordValue) { return [passWordValue boolValue] ? [UIColor clearColor] : [UIColor greenColor]; }] subscribeNext:^(UIColor *color) { self.passwordTF.backgroundColor = color; }]; //RAC 宏允许您指定一个信号的输出对象的属性。 它需要两个参数,第一个是包含属性设置的对象,第二个是属性名。 每次信号发出下一个事件,是分配给给定属性的值。 //下面这段代码与上面的作用相同 RAC(self.usernameTF,backgroundColor) = [nameSignal map:^id(NSNumber *nameValue) { return [nameValue boolValue] ? [UIColor clearColor] : [UIColor greenColor]; }]; RAC(self.passwordTF,backgroundColor) = [passwordSignal map:^id(NSNumber *passWordValue) { return [passWordValue boolValue] ? [UIColor clearColor] : [UIColor greenColor]; }]; //结合信号 RACSignal *siginSignal = [RACSignal combineLatest:@[nameSignal, passwordSignal] reduce:^id(NSNumber *nameValue, NSNumber *passWordValue){ return @([nameValue boolValue] && [passWordValue boolValue]); }]; [siginSignal subscribeNext:^(NSNumber *siginValue) { self.siginBtn.enabled = [siginValue boolValue]; }]; [[self.siginBtn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) { NSLog(@"按钮被点击了"); }];
0 0
- ReactiveCocoa-基础
- ReactiveCocoa-基础
- ReactiveCocoa基础
- ReactiveCocoa基础篇
- ReactiveCocoa之基础篇
- ReactiveCocoa之基础
- ReactiveCocoa之基础篇
- ReactiveCocoa基础one
- ReactiveCocoa之基础篇
- ReactiveCocoa之基础篇
- ReactiveCocoa之基础篇
- ReactiveCocoa之基础篇
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- 《挂机游戏制作工具手册》挂机游戏制作工具基础知识
- QT之UDP编程
- 虚拟机(VirtualBox4.3.8)与主机(WIN7)之间共享文件夹之方法二(Samba)
- Lucene学习总结之二:Lucene的总体架构
- 我想知道哪里出错了---关于以数组为参数的函数
- ReactiveCocoa-基础
- java动态编译笔记
- LINUX上基于ASM的ORACLE11的安装
- Java 静态语句块、语句块、构造函数
- iOS 7 App重新设计检查清单
- 设计模式之适配器模式
- BZOJ 1910 [Ctsc2002] Award 颁奖典礼
- android 正则检测用户名 密码 邮箱
- 位运算符巧妙用法。