链式编程 masnory

面向过程、面向对象、响应式、面向协议、链式编程、函数式编程等

链式编程:通过点语法来串联操作,把多行代码连接成一行代码的形式

masnory:链式编程:

点语法带参数 例如 equlTo:    

如果用带参数的block当做方法的返回值  

例如:

-(void(^)(NSString*))play{

    void(^block)(NSString*) = ^(NSString*str){

        NSLog(@"%@",str);

    };

    returnblock;

}

调用时候:self.play(@"haha") 类似于 make.left..mas_equalTo(100);

几个重要的类:

一、UIView的扩展 MASAdditions

二、创建约束工厂的方法类  MASConstraintMaker

三、约束抽象类 MASConstraint

1、MASAdditions包含的一些属性  MASViewAttribute类型的mas_left、mas_top等。

MASViewAttribute(视图约束属性类)对NSLayoutAttribute进行了二次封装。

2、MASConstraintMaker包含的一些属性 MASConstraint类型的 left、top等。

MASConstraint(约束抽象类)

主要的方法:

处理约束组合,使用代理和面向对象的思想进行代码复用

- (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute

tips: translatesAutoresizingMaskIntoConstraints

如果使用约束布局:translatesAutoresizingMaskIntoConstraints = NO translatesAutoresizingMaskIntoConstraints 的本意是将 frame 布局 自动转化为 约束布局,转化的结果是为这个视图自动添加所有需要的约束,如果我们这时给视图添加自己创建的约束就一定会约束冲突。为了避免上面说的约束冲突,我们在代码创建 约束布局 的控件时 直接指定这个视图不能用frame 布局(即translatesAutoresizingMaskIntoConstraints=NO),可以放心的去使用约束了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容