zoukankan      html  css  js  c++  java
  • AutoLayout +Masonary

    1,

    Masonry介绍与使用实践(快速上手Autolayout)

    http://adad184.com/2014/09/28/use-masonry-to-quick-solve-autolayout/

    Xcode6中自动布局autolayout和sizeclass的使用

    http://www.cocoachina.com/ios/20140915/9623.html

    2, 

    iOS Auto Layout

    iOS 开发实践之 Auto Layout

    http://xuexuefeng.com/autolayout/

    http://blog.csdn.net/ysy441088327/article/details/12558097

    3, TableView + Masonry

    https://github.com/Aevit/SCAutoResizeCellDemo

    4,ImageView 圆角 +Masonry 

    https://github.com/SnapKit/Masonry/issues/153

    5,

    IOS自适应前段库-Masonry的使用

    http://www.cocoachina.com/ios/20150701/12217.html

    ****************************************************************

    1,在Masonry中能够添加autolayout约束有三个函数

    - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;
    - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;
    - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;
    /*
    mas_makeConstraints 只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束 否则会报错 
    mas_updateConstraints 针对上面的情况 会更新在block中出现的约束 不会导致出现两个相同约束的情况
    mas_remakeConstraints 则会清除之前的所有约束 仅保留最新的约束
    三种函数善加利用 就可以应对各种情况了
    */

    2,在做autoLayout之前 一定要先将view添加到superview上 否则会报错

     使用 mas_makeConstraints方法的元素必须事先添加到父元素的中,例如[self.view addSubview:view];

    3, 
    [sv1 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(sv).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));
         
        /* 等价于
        make.top.equalTo(sv).with.offset(10);
        make.left.equalTo(sv).with.offset(10);
        make.bottom.equalTo(sv).with.offset(-10);
        make.right.equalTo(sv).with.offset(-10);
        */
         
        /* 也等价于
        make.top.left.bottom.and.right.equalTo(sv).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));
        */
    }];

    那么为什么bottom和right里的offset是负数呢? 因为这里计算的是绝对的数值 计算的bottom需要<sv的底部高度 所以要-10 同理用于right

    4, masequalTo 和 equalTo 区别:

      masequalTo 比equalTo多了类型转换操作,一般来说,大多数时候两个方法都是 通用的,但是对于数值元素使用mas_equalTo。对于对象或是多个属性的处理,使用equalTo。特别是多个属性时,必须使用equalTo,例如 make.left.and.right.equalTo(self.view);

  • 相关阅读:
    angular安装指定版本
    Fluttter通过按钮来打开抽屉Drawer或者endDrawer
    angular中的animation动画
    flutter pubspec.yaml配置文件详解
    angular-cli卸载安装
    angular的项目基本配置的了解
    angular使用代理解决跨域
    IOS开发之UI布局
    用Objective-C写了一个简单的批量更改文件名的程序
    使用Objective-C 计算代码运行时间
  • 原文地址:https://www.cnblogs.com/developer-qin/p/4561719.html
Copyright © 2011-2022 走看看