iOS ReactiveCocoa的简单使用

来源:互联网 发布:反恐精英刷枪软件 编辑:程序博客网 时间:2024/06/05 14:54

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);    }];

一起学习,一起进步!

0 0
原创粉丝点击