美文网首页
Autolayout

Autolayout

作者: 高思阳 | 来源:发表于2019-07-12 16:22 被阅读0次

    什么是Autolayout

    • Autolayout是一种“自动布局”技术,专门用来布局UI界面的
    • Autolayout自iOS6开始引入,由于Xcode4的不给力,当时并没有得到很大推广
    • 自iOS7(Xcode5)开始,Autolayout的开发效率得到很大的提升
    • 苹果官方也推荐开发者尽量使用Autolayout来布局UI界面
    • Autolayout能很轻松地解决屏幕适配的问题
    1.简介
    • Autoresizing

      • 在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成
    • 相比之下,Autolayout的功能比Autoresizing强大很多

    • Autolayout的2个核心概念

      • 参照
      • 约束
    2.xib中使用autolayout
    image image image
    3.代码实现Autolayout

    (1)禁止autoresizing功能,设置view的下面属性为NO

    view.translatesAutoresizingMaskIntoConstraints = NO;
    
    

    (2)利用NSLayoutConstraint类创建具体的约束对象(一个NSLayoutConstraint对象就代表一个约束)

    /*
    *   view1:要约束的控件
    *   attr1:约束的类型(做怎样的约束)
    *   relation:与参照控件之间的关系
    *   view2:参照的控件
    *   attr2:约束的类型(做怎样的约束)
    *   multiplier:乘数
    *   c:常量
    */
    +(id)constraintWithItem:(id)view1 attribute (NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;
    
    

    (3)添加约束对象到相应的view上

      - (void)addConstraint:(NSLayoutConstraint *)constraint;
      - (void)addConstraints:(NSArray *)constraints;
    

    注意:

    (a) 添加约束之前,一定要保证相关控件都已经在各自的父控件上
    (b) 不用再给 view 设置 frame

    4.自动布局的核心计算公式
    obj1.property1 =(obj2.property2 * multiplier)+constant value
    

    链接:https://www.jianshu.com/p/b2caa7d88dbe

    相关文章

      网友评论

          本文标题:Autolayout

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