博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS ReactiveCocoa简单使用笔记
阅读量:5053 次
发布时间:2019-06-12

本文共 1143 字,大约阅读时间需要 3 分钟。

 

 

涉及对象:

两个输入框,一个按钮。

 

代码功能:

随时监测输入框内容的长度变化,并在输入内容不符合预设要求时,立即改变输入框背景色。

在两个输入框的内容都符合预设要求时,按钮才可用。

 

RACSignal *validField1Signal = [self.field1.rac_textSignal map:^id(NSString *text){        return @([self isValidInput:text]);    }];    RAC(self.field1,backgroundColor) = [validField1Signal map:^id(NSNumber *valid){        return [valid boolValue] ? [UIColor clearColor] : [UIColor yellowColor];    }];        RACSignal *validField2Signal = [self.field2.rac_textSignal map:^id(NSString *text){        return @([self isValidInput:text]);    }];    RAC(self.field2,backgroundColor) = [validField2Signal map:^id(NSNumber *valid){        return [valid boolValue] ? [UIColor clearColor] : [UIColor yellowColor];    }];        //! 聚合信号    RACSignal *btnActiveSignal = [RACSignal combineLatest:@[validField1Signal,validField2Signal]                                                   reduce:^id(NSNumber *valid1,NSNumber *valid2){        return @([valid1 boolValue] && [valid2 boolValue]);    }];    [btnActiveSignal subscribeNext:^(NSNumber *btnActive){        self.btn.enabled = [btnActive boolValue];    }];

 

转载于:https://www.cnblogs.com/ficow/p/5374319.html

你可能感兴趣的文章
PDF格式的“在线阅读”和“下载”
查看>>
无耻之徒(美版)第七季/全集Shameless US迅雷下载
查看>>
svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
查看>>
Webpack4 学习笔记四 暴露全局变量、externals
查看>>
CF1005F Berland and the Shortest Paths
查看>>
vscode点击ctrl键报错Request textDocument/definition failed.
查看>>
POJ 3368 Frequent values (RMQ,4级)
查看>>
java 练习题3
查看>>
对象生命周期的简单理解
查看>>
c# 日志记录 行号
查看>>
CSS3---12.过渡动画
查看>>
[NOI1995]石子合并 四边形不等式优化
查看>>
vim 实现begin end 配对 使用matchit插件
查看>>
linux挂载磁盘以及扩容主分区
查看>>
[转]Python模块学习:threading 多线程控制和处理
查看>>
PHP链接sqlserver出现中文乱码
查看>>
[计算机]Alan Perlis人物简介
查看>>
Android-----第三方 ImageLoader 的简单配置和使用
查看>>
零基础入门Python3-详解分支
查看>>
js数组去重
查看>>