ReactiveCocoa-基础

前端之家收集整理的这篇文章主要介绍了ReactiveCocoa-基础前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. //subscribeNext:传递给下一个执行
  2. [self.usernameTF.rac_textSignalsubscribeNext:^(idx){
  3. NSLog(@"%@",x);
  4. }];
  5. //filter:过滤信号
  6. [[filter:^BOOL(NSString*name){
  7. returnname.length>3;
  8. }]idx){
  9. NSLog(@"%@",x);
  10. }];
  11. //map:转换信号的类型
  12. [[self.passwordTF.rac_textSignalmap:^id(NSString*password){
  13. return@(password.length);
  14. }]//创建一个信号
  15. RACSignal*nameSignal=[NSString*name){
  16. return@(name.length>3);
  17. RACSignal*passwordSignal=[return@(password.length>4);
  18. //利用上一步所得的信号再进行条件判断
  19. //当不使用subscribeNext时上面的信号不会执行;
  20. [[nameSignalNSNumber*nameValue){
  21. return[nameValueboolValue]?[UIColorclearColor]:[UIColorgreenColor];
  22. UIColor*color){
  23. self.usernameTF.backgroundColor=color;
  24. [[passwordSignalNSNumber*passWordValue){
  25. return[passWordValueself.passwordTF.backgroundColor=color;
  26. //RAC宏允许您指定一个信号的输出对象的属性。它需要两个参数,第一个是包含属性设置的对象,第二个是属性名。每次信号发出下一个事件,是分配给给定属性的值。
  27. //下面这段代码与上面的作用相同
  28. RAC(self.usernameTF,backgroundColor)=[nameSignalself.passwordTF,backgroundColor)=[passwordSignal//结合信号
  29. RACSignal*siginSignal=[RACSignalcombineLatest:@[nameSignal,passwordSignal]reduce:^NSNumber*nameValue,NSNumber*passWordValue){
  30. return@([nameValueboolValue]&&[passWordValueboolValue]);
  31. [siginSignalNSNumber*siginValue){
  32. self.siginBtn.enabled=[siginValueboolValue];
  33. self.siginBtnrac_signalForControlEvents:UIControlEventTouchUpInside] NSLog(@"按钮被点击了");
  34. }];

猜你在找的React相关文章