美文网首页iOS高效开发者
RAC:响应式编程之初体验(OC)

RAC:响应式编程之初体验(OC)

作者: 小熊翻译App | 来源:发表于2017-10-24 20:18 被阅读15次
一.体验步骤:
  1. 准备工作
1. 新建一个Xcode工程:RACDemo001
2. pod init
3. 在podfile文件里加上 pod ‘ReactiveObjC’ 
4. 终端输入: pod install,完成后重新打开程序,准备写代码
podfile文件.png
  1. 开始体验(编写一个类似密码输入的UI:但并不是)
1. 首先导入头文件: #import <ReactiveObjC.h>
2. 代码正文:
- (void)viewDidLoad {
    [super viewDidLoad];
    [self firstRAC];
}
- (void)firstRAC {
    UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(self.view.center.x - 100, 100, 200, 40)];
    [self.view addSubview:textField];
    textField.borderStyle = UITextBorderStyleRoundedRect;
    textField.text = @"";
    textField.placeholder = @"请输入密码";
    textField.secureTextEntry = YES;
    
    NSMutableArray <UILabel *>*arrayM = [NSMutableArray array];
    for (NSInteger i = 0; i<=3; i++) {
        UILabel *label = [[UILabel alloc]init];
        label.tag = i;
        label.backgroundColor = [UIColor clearColor];
        [self.view addSubview:label];
        label.frame = CGRectMake(self.view.center.x + i*51 - 100, 150, 47, 10);
        [arrayM addObject:label];
    }
    
    UILabel *tipLabel = [[UILabel alloc]init];
    [self.view addSubview:tipLabel];
    tipLabel.frame = CGRectMake(self.view.center.x - 100, 170, 200, 10);
    tipLabel.font = [UIFont systemFontOfSize:11];
    tipLabel.textColor = [UIColor greenColor];
    tipLabel.text = @"";
    ///核心代码
    [[textField rac_signalForControlEvents:UIControlEventEditingChanged] subscribeNext:^(id x){
        NSLog(@"textField.text========%@", textField.text);
        
        NSInteger j = textField.text.length;
        NSInteger k = 0;
        if (j <= 0) {
            tipLabel.text = @"";
            k=0;
        }
        else if (j>0 && j<=6) {
            k = 1;
        }
        else if (j>6 && j<=9) {
            k=2;
        }
        else if (j>9 && j<=12) {
            k=3;
        }
        else if (j>12 && j<=15) {
            k=4;
        }
        else {
            return ;
        }
        
        for (NSInteger i = 0; i < 4; i++) {
            if (i <= k - 1) {
                arrayM[i].backgroundColor = [UIColor magentaColor];
                if (k == 1) {
                    tipLabel.text = @"密码太弱";
                    tipLabel.textColor = [UIColor grayColor];
                }
                else if (k==2) {
                    tipLabel.text = @"密码一般";
                    tipLabel.textColor = [UIColor orangeColor];
                }
                else if (k==3) {
                    tipLabel.text = @"密码较强";
                    tipLabel.textColor = [UIColor redColor];
                }
                else if (k==4) {
                    tipLabel.text = @"密码非常强";
                    tipLabel.textColor = [UIColor purpleColor];
                }
            }
            else {
                arrayM[i].backgroundColor = [UIColor clearColor];
            }
        }
    }];
}


效果图:

输入密码前.png 输入1到6位密码.png 输入7到9位密码.png 输入10到12位密码.png 输入13到15位密码.png

相关文章

  • RAC:响应式编程之初体验(OC)

    一.体验步骤: 准备工作 开始体验(编写一个类似密码输入的UI:但并不是) 效果图:

  • RxSwift核心逻辑

    github地址 中文文档 前言 RxSwift是Swift的一套响应式编程框架,如同OC的RAC。响应式编程的核...

  • RxSwift(一)-- 函数响应式编程思想

    记得首次接触到函数响应式编程是在学习OC开源框架RAC(ReactiveCocoa)的时候,知道RAC是函数式+响...

  • RAC(ReactiveCocoa)介绍(一)——基本介绍

    最近接触学习到了RAC(ReactiveCocoa),RAC是函数式+响应式编程结合,首先得去理解何为响应式函...

  • RAC(ReactiveCocoa)——基本使用(附简单Demo

    最近接触学习到了RAC(ReactiveCocoa),RAC是函数式+响应式编程结合,首先得去理解何为响应式函数编...

  • RAC API使用

    RAC的定义 ReactiveCocoa(简称:RAC),其具有函数式编程和响应式编程的特性,是github开源的...

  • iOS 常用的第三方库

    ReactiveCocoa 、RxSwift : 响应式编程RAC Alamofire 、 AFNetworkin...

  • RAC 的初级使用

    RAC的定义: ReactiveCocoa 可以说是结合了函数式编程和响应式编程的框架,也可称其为函数响应式编程(...

  • iOS RAC学习

    一、RAC使用基础认知 RAC编程思想:响应式编程+函数式编程 在iOS中,类之间的传值,无非就是block、de...

  • RAC

    IOS响应式编程框架ReactiveCocoa(RAC)使用示例 感觉RAC响应起来太乱,不太实用,但是平时自己的...

网友评论

本文标题:RAC:响应式编程之初体验(OC)

本文链接:https://www.haomeiwen.com/subject/vqixpxtx.html