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