RAC学习

作者: jiangamh | 来源:发表于2016-03-05 22:50 被阅读533次

RAC导入

通常都会使用CocoaPods帮助我们导入,和其他第三方库不同的时,导入该库需要在Podfile中添加use_frameworks!,如果没有加入会导入出错,并提示你添加use_frameworks!,Podfile内容:
use_frameworks!
pod 'ReactiveCocoa', '~> 4.0.2-alpha-1'

简单的使用

首先导入头文件

#import <ReactiveCocoa/ReactiveCocoa.h>

具体使用

#import "ViewController.h"
#import <ReactiveCocoa/ReactiveCocoa.h>
#import <objc/runtime.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self setupUI];
    [self performSelector:@selector(postNotice) withObject:nil afterDelay:3];
}

-(void)postNotice
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"testNotice" object:nil];
}

-(void)setupUI
{
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 200, 30)];
    textField.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubview:textField];
    //处理输入改变
    [[textField rac_signalForControlEvents:UIControlEventEditingChanged]subscribeNext:^(id x) {
        NSLog(@"textField value changed:%@",NSStringFromClass(object_getClass(x)));
    }];
    //处理输入改变
    [[textField rac_textSignal] subscribeNext:^(id x) {
         NSLog(@"textField value changed:%@,type:%@",x,NSStringFromClass(object_getClass(x)));
    }];
    
    //添加手势
    UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(200, 200, 80, 50)];
    textLabel.backgroundColor = [UIColor redColor];
    textLabel.userInteractionEnabled = YES;
    [self.view addSubview:textLabel];
    
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]init];
    [[tapGesture rac_gestureSignal]subscribeNext:^(id x) {
        
        NSLog(@"tapGesture Action %@,type:%@",x,NSStringFromClass(object_getClass(x)));
    }];
    [textLabel addGestureRecognizer:tapGesture];
    
    //通知
    [[[NSNotificationCenter defaultCenter] rac_addObserverForName:@"testNotice" object:nil] subscribeNext:^(id x) {
       
        NSLog(@"notification %@,type:%@",x,NSStringFromClass(object_getClass(x)));
    }];
}

 //kvo
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 250, 200, 200)];
    tableView.dataSource = self;
    tableView.delegate = self;
    tableView.backgroundColor = [UIColor redColor];
    [self.view addSubview:tableView];
    
    [RACObserve(tableView, contentOffset) subscribeNext:^(id x) {
       NSLog(@"x %@,type:%@",x,NSStringFromClass(object_getClass(x)));
    }];

@end

相关文章

  • RAC

    ReactiveCocoa入门 学习RAC小记-适合给新手看的RAC用法总结RAC稍深入-适合新手学习RAC iO...

  • 了解这些,学习RAC不再难

    了解这些,学习RAC不再难 了解这些,学习RAC不再难

  • RAC实战

    RAC实战 RAC实战 - 专题 - 简书 RAC(ReactiveCocoa)学习资源汇总~持续更新 - CSD...

  • RAC解读

    ReactiveCocoa(RAC)是Objective-C的响应式编程的框架,学习RAC框架,即是学习如何自学一...

  • 菜鸟用RAC基于AFNetworking 3.0网络的封装搭建记

    前言 这几天自己在学习RAC,学习了几天对RAC有了一定基础了解,如之前写的菜鸟开始学习ReactiveObjc运...

  • 2018-01-03 ReactiveCocoa @Weaki

    最近准备用RAC来写项目,在学习中发现RAC中经常会循环引用,RAC中的@Weakify非常好用,介绍给大家。 这...

  • rac学习

    一、bind操作,其实很简单就是做了一个信号,并且先执行当前信号的订阅,并且在当前订阅中调用订阅绑定参数的信号。假...

  • RAC学习

    RAC+MVVM www.jianshu.com/p/8d14f0465c5f

  • RAC学习

    RAC(ReactiveCocoa),函数响应式编程的框架,传统项目中,我们主要使用target-action、代...

  • RAC学习

    RAC导入 通常都会使用CocoaPods帮助我们导入,和其他第三方库不同的时,导入该库需要在Podfile中添加...

网友评论

      本文标题:RAC学习

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