ReactiveCocoa-基础
来源:互联网 发布:手游推广联盟源码 编辑:程序博客网 时间:2024/05/29 11:33
- //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
- UITableView的使用和点击每个cell跳转到其他controller优化
- android 学习笔记 光照传感器的用法
- UIAlertView在其他页面快速显示?
- Ambari2.1安装hdp2.3
- 1149 -- 光棍节的快乐
- ReactiveCocoa-基础
- 面试之jsp、Servlet相关知识——生命周期,区别等
- Hadoop第9周练习—Hive部署测试(含MySql部署)
- 相关滤波跟踪(MOSSE)
- 1150 -- 寻找最大数
- 分区
- python beautifulsoup多线程分析抓取网页
- new delete 与malloc free 的联系与区别?
- snk文件和AssemblyInfo.cs文件的作用