美文网首页
iOS 链式编程

iOS 链式编程

作者: kklwg | 来源:发表于2019-11-14 11:31 被阅读0次

链式编程是OC中一种很好的设计模式。框架中使用链式编程,会让框架使用者感觉写的代码更加美观简洁。

链式编程的效果

UIEdgeInsets padding=UIEdgeInsetsMake(10,10,10,10);

[view1 mas_makeConstraints:^(MASConstraintMaker*make){make.edges.equalTo(superview).with.insets(padding);}];

链式编程de关键语法

链式编程使用的两个关键且常用的语法:点语法、block。

点语法

可作用于属性,也可作用于无参的方法。

block

使用block作为方法返回值,即调用该方法则可以返回一个block。

block可以定义任意类型的参数,也可定义返回值。

block的返回值类型是所在方法所属的类型(值不一定是self)。

关于block最好不要作为属性存在,随时爆发循环引用。或者你遇到block就使用weakSelf吧

使用链式编程de SegmentBar

估计大家都封装过一个 SegmentBar:segmentBar简单示例code

不使用链式编程de效果

这里如果想再次更改 config,则需要将config暴露出去。

// 主要代码@interfaceLWSegmentBarConfig:NSObject

@property(nonatomic,strong)UIColor*itemNormalColor;

@property(nonatomic,strong)UIColor*itemSelectColor;@end

// 使用演示

LWSegmentBarConfig*config=[LWSegmentBarConfig new];

config.itemNormalColor=[UIColor lightGrayColor];

config.itemSelectColor=[UIColor blueColor];...属性很多

LWSegmentBar*bar=[LWSegmentBar segmentBarWithFrame:CGRectMake(0,0,self.view.frame.size.width,64)segmentBarConfig:config];

使用链式编程de效果

// 主要代码@interfaceLWSegmentBarConfig:NSObject

-(LWSegmentBarConfig*(^)(UIColor*color))lw_itemNormalColor;-(LWSegmentBarConfig*(^)(UIColor*color))lw_itemSelectColor;

@end

@implementationLWSegmentBarConfig

-(LWSegmentBarConfig*(^)(UIColor*color))lw_itemNormalColor{return^(UIColor*color){self.itemNormalColor=color;returnself;};}

-(LWSegmentBarConfig*(^)(UIColor*color))lw_itemSelectColor{return^(UIColor*color){self.itemSelectColor=color;returnself;};}

@end

// 使用演示LWSegmentBar*bar=[XMGSegmentBar segmentBarWithFrame:CGRectMake(0,0,self.view.frame.size.width,64)];

[bar lw_updateConfig:^(LWSegmentBarConfig*config){config.lw_itemNormalColor([UIColor lightGrayColor]).lw_itemSelectColor([UIColor blueColor]);}];

相关文章

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • ReactiveObjC入门

    ReactiveObjC基础用法 iOS开发三种编程方式(响应式编程、函数编程、链式编程),函数编程最常用,链式编...

  • 链式编程总结

    链式编程总结 @(iOS) 研究了一下链式编程,但是感觉项目中用处不是很多。 介绍 1.什么时候使用链式编程?在面...

  • iOS 链式编程简单的使用

    iOS 链式编程简单的使用 链式编程-顾名思义,链式,连贯性为其主要特征,放在编程领域来讲,说简单点就是把一系列的...

  • iOS-链式编程思想

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • iOS链式编程

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • iOS链式、函数式和响应式编程

    原文编程思想-iOS链式、函数式和响应式编程 在了解链式、函数式和响应式编程前,我们需要回顾下Block,它在下面...

  • iOS 链式编程

    本来想将题目取名为 masonry源码心得之链式编程 的。但想着想着没什么必要,我写文章主要目的是做笔记自己看的。...

  • iOS链式编程

    在上篇我介绍了一下Masonry使用:https://www.jianshu.com/p/894816db541c...

  • iOS链式编程

    谈到链式编程和函数式编程, Masonry就是最经典的代表, 没事可以多看看它的源码。例如:make.top.eq...

网友评论

      本文标题:iOS 链式编程

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