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方法