美文网首页iOS开发
RAC(iOS)常用方法

RAC(iOS)常用方法

作者: timeQuick | 来源:发表于2019-04-28 18:45 被阅读0次

    前言

    在学完RAC后发现方法的用法总是会忘,于是简单记录一下在工程中的用法。

    RAC常用方法

    UIButton点击

    button点击响应

      [[self.clickBtn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(__kindof UIControl * _Nullable x) {
         //点击处理
        }];
    
    UITextfield文字改变

    监听uitextfield输入文字的改变

      // 监听文本框的文字改变
        [[self.textfiled rac_textSignal] subscribeNext:^(NSString *x) {
            NSLog(@"文本框文字发生了改变:%@",x);
        }];
    
    
      //绑定手机号  这样写可以self.loginView.PhoneTF.text = 复制时也能调用
        RAC(self.loginViewModel,phoneNumber ) = [RACSignal merge:@[RACObserve(self.loginView.phoneTF, text),self.loginView.phoneTF.rac_textSignal]];
    

    KVO观察

    监听属性

    //监听对象的属性值改变,转换成信号,只要值改变就会发送信号
        [[self rac_valuesForKeyPath:@"loginValid" observer:nil] subscribeNext:^(id x) {
            
        }];
    

    Notification通知

    //键盘弹出
     [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillShowNotification object:nil] subscribeNext:^(NSNotification * _Nullable x) {
            NSLog(@"键盘出来了");
        }];
    

    手势GestureRecognizer

     // 监听手势
        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] init];
        [[tapGesture rac_gestureSignal] subscribeNext:^(id x) {
            NSLog(@"tap手势点击了");
        }];
        [self.view addGestureRecognizer:tapGesture];
    

    delegate

    自己定义的delegate,可以按如下实现,收到的是一个元组

        [[self rac_signalForSelector:@selector(transPhone:psd:)] subscribeNext:^(RACTuple * _Nullable x) {
            NSLog(@"data %@",x);
        }];
    

    定时器

    在不用定时器的时候记得dispose

      [[RACSignal interval:1.0 onScheduler:[RACScheduler mainThreadScheduler]] subscribeNext:^(NSDate * _Nullable x) {
            NSLog(@"timer %@",x);
        }];
        
        [[RACSignal interval:1.5 onScheduler:[RACScheduler schedulerWithPriority:(RACSchedulerPriorityHigh)]] subscribeNext:^(NSDate * _Nullable x) {
            NSLog(@"timer 2 %@",x);
        }];
        
    

    操作符

    屏幕快照 2019-04-28 下午6.44.22.png

    相关文章

      网友评论

        本文标题:RAC(iOS)常用方法

        本文链接:https://www.haomeiwen.com/subject/qjxjnqtx.html