美文网首页
Masonry之 make.height.equalTo(@20

Masonry之 make.height.equalTo(@20

作者: shareMind | 来源:发表于2018-07-13 18:59 被阅读11次

    Masonry调用流程

    constraint参数传递nil的时候,创建一个新的MASContraint对象,并且设置代理、加入到数组当中去

    make.height 返回一个上图的MASContraint对象 newContraint

    继续调用make.height.equalTo(@20)

    该方法为基类抽象对象MASConstraint方法,返回一个block,可以查看 equalToWithRelation 方法,返回的仍然是一个block;(注意,这个方法在基类MASConstraint并没有做任何实现,而在子类MASViewContraint和MASCompositeContraint有实现,下图讨论的是前者)

    这就可以解释make.height.equalTo(@20) 中的 equalTo(@20)可以执行(实际上就是一个block带参数的调用);

    由于attribute传递的是@20,一个NSNumber对象,简写代码如下:

    self.layoutRelation设置枚举值,并且将变量hasLayoutRelation设置为YES(待会有用)

    self.secondViewAttribute的方法,由于传递的是@20,一个NSNumber对象,代码简写如下

    NSNumber继承自NSValue, 所以这里直接设置了offset的值为20

    MASViewContraint 有个方法,实际上是设置layoutConstant

    self.layoutConstant是一个私有方法, 设置layoutConstant变量值,同时更新layoutConstraint的constant的值;

    相关文章

      网友评论

          本文标题:Masonry之 make.height.equalTo(@20

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