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)参考系属性缺失补全为目标属性。

  • 相关阅读:
    NET开发中的事务处理大比拼
    gridview 导出Excel
    项目 心得
    设计模式Prototype原型模式
    设计模式Memento 备忘录模式
    设计模式Chain Of Responsibility 职责链模式
    设计模式Composite组合模式
    .NET常用功能和代码[总结与收藏]
    SQL SERVER函数——表值函数的处理
    设计模式学习笔记 简单工厂模式
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7929779.html
Copyright © 2011-2022 走看看