ReactiveCocoa笔记3

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(@"控制器知道按钮被点击");
    }];

你可能感兴趣的:(ReactiveCocoa笔记3)