iOS基础

ReactiveObjC用法

2018-06-28  本文已影响6人  鹏飞说

pod 'ReactiveObjC', '~> 3.1.0'

// 代替代理
    [[self.blueView rac_signalForSelector:@selector(laile:)] subscribeNext:^(RACTuple * _Nullable x) {
        NSLog(@"控制器里面的蓝色view被点击了!!!");
        NSLog(@"%@",x);
    }];
    
    // 代理KVO 可以监听数据的改变frame 或者backgroundColor   #import <NSObject+RACKVOWrapper.h>
    //方式1:
    [self.blueView rac_observeKeyPath:@"frame" options:NSKeyValueObservingOptionOld observer:nil block:^(id value, NSDictionary *change, BOOL causedByDealloc, BOOL affectedOnlyLastComponent) {
        //回调

        NSLog(@"%@%@",value,change);

    }];
//    //方式2:
    [[_blueView rac_valuesForKeyPath:@"frame" observer:nil] subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];
    //监听事件
    UIButton *btn = [[UIButton alloc]init];
    [[btn rac_signalForControlEvents:(UIControlEventTouchUpInside)] subscribeNext:^(__kindof UIControl * _Nullable x) {
        NSLog(@"%@",x);
    }];
    //通知
    [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardDidShowNotification object:nil] subscribeNext:^(NSNotification * _Nullable x) {
        NSLog(@"%@",x);
    }];
    
    UITextField *textField = [[UITextField alloc]init];
    [[textField rac_textSignal] subscribeNext:^(NSString * _Nullable x) {
        NSLog(@"%@",x);
    }];
上一篇下一篇

猜你喜欢

热点阅读