iOS ReactiveCocoa的简单使用

ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架

ReactiveCocoa在开发中常见的用法

  1. Event(按钮的点击)
// 监听事件
    // 把按钮点击事件转换为信号,点击按钮,就会发送信号
    [[button rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
        NSLog(@"按钮被点击");
    }];

2.KVO观察者

 // 监听对象的属性值改变,转换成信号,只要值改变就会发送信号
    [[View rac_valuesAndChangesForKeyPath:@"x" options:NSKeyValueObservingOptionNew observer:nil] subscribeNext:^(id x) {
        NSLog(@"view的x值发生了改变");
    }];

3.Notification通知

// 代替通知
    // 把监听到的通知转换信号
    [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillShowNotification object:nil] subscribeNext:^(id x) {
        NSLog(@"键盘将要出现");
    }];

    // 通过RAC提供的宏快速实现观察者模式
    // RACObserve(self, name):监听某个对象的某个属性,返回的是信号。
    [RACObserve(self.greenView,x) subscribeNext:^(id x) {
        NSLog(@"绿色view的x方向发生改变");
    }];

4.textField的文字信号

// 监听文本框的文字改变
    [[_textField rac_textSignal] subscribeNext:^(NSString *x) {
        NSLog(@"文本框文字发生了改变:%@",x);
    }];

    // 通过RAC提供的宏快速实现textSingel的监听
    // RAC(TARGET, [KEYPATH, [NIL_VALUE]]):用于给某个对象的某个属性绑定。
    // 当textField的文字发生改变时,label的文字也发生改变
    RAC(self.textLabel,text) = self.textField.rac_textSignal;

5.手势信号

 // 监听手势
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] init];
    [[tapGesture rac_gestureSignal] subscribeNext:^(id x) {
        NSLog(@"view被触发tap手势");
    }];
    [self.view addGestureRecognizer:tapGesture];

6.过滤器filter方法的使用

// 过滤器
    [[self.textField.rac_textSignal filter:^BOOL(NSString *value) {
        return value.length >= 3;
    }] subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];

一起学习,一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值