ReactiveCocoa笔记3
2016-05-23 本文已影响27人
Young_Blood
RAC的一些用法
1.代替KVO
- 当self.view的Frame发生变化是下边两个方法都能调用内部的Block
[self.view rac_observeKeyPath:@"frame" options:NSKeyValueObservingOptionNew observer:nil block:^(id value, NSDictionary *change, BOOL causedByDealloc, BOOL affectedOnlyLastComponent) {
}];
[[self.view rac_valuesForKeyPath:@"frame" observer:nil] subscribeNext:^(id x) {
}];
2.监听事件
- 按钮点击事件的监听
[[_btn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
NSLog(@"按钮点击事件");
}];
3.代替通知
- 监听键盘的弹出
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillShowNotification object:nil] subscribeNext:^(id x) {
NSLog(@"键盘弹出");
}];
4.监听文本框的改变
- 当文本框文字方法改变时就会调用
[_textField.rac_textSignal subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
5.代替代理
- 监听RedView中的按钮点击事件
// 1.代替代理:1.RACSubject 2.rac_signalForSelector
// 只要传值,就必须使用RACSubject
[[_redView rac_signalForSelector:@selector(btnClick:)] subscribeNext:^(id x) {
NSLog(@"控制器知道按钮被点击");
}];