美文网首页
2018-05-18 masonry 遇到的坑与删除约束

2018-05-18 masonry 遇到的坑与删除约束

作者: 幸福晓杰2016 | 来源:发表于2018-05-21 10:42 被阅读1200次

    1.一般Masonry写的约束,如果冲突的话,会有提示,甚至会出现崩溃。但是有一类冲突却不会,它只会牺牲某一些约束来符合条件!
    举例如下:
    我们常常使用scrollView内部的控件高度大小来决定scrollView的滚动范围。这种操作好比是内部撑大这个scrollView的窗口。
    我将这个这种撑大高度的约束形象地成为:内增高约束。
    其他约束,我称之为:外限制约束。
    问题的关键出现了:
    这两类约束发生冲突时,你会发现Xcode约束不会报错。
    内增高约束会被限制回无效化,主要以外限制约束为主。

    2,我今天有个场景,特别奇怪,它不是更新约束,也不是建立约束。
    它是:删除一条约束!!!
    我仔细查看了Masonry的使用文档,我确认了一点新方法:

    /**
     *  Creates a MASConstraintMaker with each view in the callee.
     *  Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view.
     *  All constraints previously installed for the views will be removed.
     *
     *  @param block scope within which you can build up the constraints which you wish to apply to each view.
     *
     *  @return Array of created/updated MASConstraints
     */
    - (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block;
    

    All constraints previously installed for the views will be removed.这句话表明remake这个方法,属于重置这个控件的所有约束。
    先删除约束,然后再重建这些约束!!!

    相关文章

      网友评论

          本文标题:2018-05-18 masonry 遇到的坑与删除约束

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