美文网首页
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

相关文章

  • 9.4 AutoLayout使用

    AutoLayout使用 AutoLayout使用.png

  • iOS - AutoLayout -2 AutoLayout

    # iOS - AutoLayout -2 AutoLayout 上篇文章我们了解了AutoLayout 的布局方...

  • ScrollView 与 Autolayout

    ScrollView 与 Autolayout ScrollView 与 Autolayout

  • # iOS - AutoLayout -1

    iOS - AutoLayout -1 1、AutoLayout 自动布局(AutoLayout)是iOS6引入的...

  • iOS布局

    布局方式 AutoLayout,AutoresizingMask AutoLayout NSLayoutConst...

  • AutoLayout

    AutoLayout autolayout的概念 Autolayout是一种“自动布局”技术,专门用来布局UI界面...

  • 9.6AutoLayout约束基础

    AutoLayout约束基础 AutoLayout约束基础1.png AutoLayout约束基础2.png Au...

  • UI基础4

    自动布局 autoresizing:autolayout:size classes + autolayout:si...

  • AutoLayout

    AutoLayout深入浅出一[前传] AutoLayout深入浅出二[基本使用] AutoLayout深入浅出三...

  • autoLayout 和 autoresizing

    autolayout 和 autoresizing 不能够共存,使用autoLayout必须关闭aoturesizing

网友评论

      本文标题:Autolayout

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