【iOS编程思想】ReactiveCocoa (4)常用方法集

1、代替代理


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

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

结果打印:

110041_Sxe9_2279344.png

2、代替KVO

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

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

打印结果:

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

110426_wKri_2279344.png

3、监听事件

比如监听按钮点击事件。

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

打印结果:

110616_UP1M_2279344.png

4、代替通知

键盘将要显示是的通知。

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

打印结果:

110748_Rond_2279344.png

5、监听文本框

使用rac_textSignal来监听文本框text。

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

打印结果:

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

111003_ZBqA_2279344.png

输入文字时的打印结果:

111115_yIQb_2279344.png

github:

https://github.com/ly918/Demos

 

转载于:https://my.oschina.net/Misayalvyuan/blog/724687

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值