Home ReactiveCocoa (4)常用方法集
Post
Cancel

ReactiveCocoa (4)常用方法集

1、代替代理

实质是监听某对象是否调用了某一方法。在blueView中有一个btnClick()方法,即按钮的触发方法,我们监听这个方法,即传入这个选择器。

1
2
3
4
5
6
//RACSubject rac_signalForSelector
//只要传值就必须使用RACSubject
[[_blueView rac_signalForSelector:@selector(btnClick:)] subscribeNext:^(id x) {
    NSLog(@"控制器知道按钮被点击了");
}];

结果打印:

2、代替KVO

触发touchBegin中改变blueView得frame,即可监听到frame的改变。

1
2
3
[[_blueView rac_valuesForKeyPath:@"frame" observer:nil] subscribeNext:^(id x) {
    NSLog(@"修改的值 %@",x);
}];

打印结果:

可以注意到在view初始化、主动改变frame时都监听到了。

3、监听事件

比如监听按钮点击事件。

1
2
3
[[_btn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
     NSLog(@"别点我!!");
}];

打印结果:

4、代替通知

键盘将要显示是的通知。

1
2
3
[[[NSNotificationCenter defaultCenter]rac_addObserverForName:UIKeyboardWillShowNotification object:nil]subscribeNext:^(id x) {
        NSLog(@"键盘将要显示时发送的通知:%@",x);
}];

打印结果:

5、监听文本框

使用rac_textSignal来监听文本框text。

1
2
3
[_textField.rac_textSignal subscribeNext:^(id x) {
     NSLog(@"监听文本框文字:%@",x);
}];

打印结果:

发现在初始化和开始编辑是都打印:

输入文字时的打印结果:

github:

https://github.com/ly918/Demos

This post is licensed under CC BY 4.0 by the author.

ReactiveCocoa (6) 多次订阅一次请求

ReactiveCocoa (5)常用的宏