Masonry 类之间的关系

MASConstraintMaker是一个工厂类,平时用到最多,常用UIView的约束,暴露出来的也只有这个类

使用MASConstraintMaker实例化的make,去设置各个约束;


上图来自文章

MASConstraint是一个抽象基类,不允许进行实例化(),在其init()方法内,有一个断言;

MASConstraint 分别有两个子类 MASViewConstraint MASCompositeConstraint,在实际运用中,这两个子类实现了主要的功能;

MASViewConstraint 和 MASCompositeConstraint相同之处是继承了父类MASConstraint的方法属性;

不同之处是MASViewConstraint 包装了MASViewAttribute信息,并且两者都分别实现了父类的方法;

另外还有两个类:

MASViewAttribute 实现了对view 和 NSLayoutAttribute的封装

MASLayoutConstraint 继承自系统类NSLayoutConstraint,额外添加了mas_key属性

总结:

MASViewConstraint 、 MASCompositeConstraint、MASViewAttribute、MASLayoutConstraint

实现了约束之前的关系配置,但最终的install都落在了MASConstraintMaker身上;


UIView的一个Category

MASConstraintMaker的实例 install方法

你可能感兴趣的:(Masonry 类之间的关系)