RAC的一些用法
1.代替KVO
- 當(dāng)self.view的Frame發(fā)生變化是下邊兩個(gè)方法都能調(diào)用內(nèi)部的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.監(jiān)聽事件
[[_btn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
NSLog(@"按鈕點(diǎn)擊事件");
}];
3.代替通知
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillShowNotification object:nil] subscribeNext:^(id x) {
NSLog(@"鍵盤彈出");
}];
4.監(jiān)聽文本框的改變
- 當(dāng)文本框文字方法改變時(shí)就會(huì)調(diào)用
[_textField.rac_textSignal subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
5.代替代理
- 監(jiān)聽RedView中的按鈕點(diǎn)擊事件
// 1.代替代理:1.RACSubject 2.rac_signalForSelector
// 只要傳值,就必須使用RACSubject
[[_redView rac_signalForSelector:@selector(btnClick:)] subscribeNext:^(id x) {
NSLog(@"控制器知道按鈕被點(diǎn)擊");
}];
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。