zoukankan      html  css  js  c++  java
  • Masonry 原理与使用说明

    原理:

    1)约束生成;MASConstraintMaker;

    2)缺省补齐:

    - (void)setSecondViewAttribute:(id)secondViewAttribute {

        if ([secondViewAttribute isKindOfClass:NSValue.class]) {

            [self setLayoutConstantWithValue:secondViewAttribute];

        } else if ([secondViewAttribute isKindOfClass:MAS_VIEW.class]) {

            _secondViewAttribute = [[MASViewAttribute alloc] initWithView:secondViewAttribute layoutAttribute:self.firstViewAttribute.layoutAttribute];

        } else if ([secondViewAttribute isKindOfClass:MASViewAttribute.class]) {

            _secondViewAttribute = secondViewAttribute;

        } else {

            NSAssert(NO, @"attempting to add unsupported attribute: %@", secondViewAttribute);

        }

    }

    3)寻找约束添加视图,并添加

        if (self.secondViewAttribute.view) {

            MAS_VIEW *closestCommonSuperview = [self.firstViewAttribute.view mas_closestCommonSuperview:self.secondViewAttribute.view];

            NSAssert(closestCommonSuperview,

                     @"couldn't find a common superview for %@ and %@",

                     self.firstViewAttribute.view, self.secondViewAttribute.view);

            self.installedView = closestCommonSuperview;

        } else if (self.firstViewAttribute.isSizeAttribute) {

            self.installedView = self.firstViewAttribute.view;

        } else {

            self.installedView = self.firstViewAttribute.view.superview;

        }

    4)

    (1)绝对尺寸信息添加到自身;

    (2)绝对布局数据添加到父视图;

    (3)参考系属性缺失补全为目标属性。

  • 相关阅读:
    C语言指针和数组
    C语言malloc、calloc函数
    33、二叉树的后序遍历序列
    进程、线程、协程
    8、字符串转整数
    51、数组中的逆序对
    49、丑数
    19、正则表达式匹配
    32、从上到下打印二叉树
    leetcode5:最长回文子串
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7929779.html
Copyright © 2011-2022 走看看