文章标题

1.自动布局

1.1 autoresizing的介绍

1.1.1 六根线

与父控件之间的关系,外面有四根线 控制和父控件之间的边距

是否随着父控件的变化而变化

中间的 两根线 设置是否随父控件的 变化而变化

1.1.2 弊端

它是 相对于父控件进行设置的,当想设置兄弟 控件之间的 约束时, 办不到,无法设置

代码实现 默认的约束是 左上 .

 self.redView.autoresizingMask 

1.2 autolayou

子控件之间的相对关系的设定.
中的四个按钮:
1. 将控件按照 类似于集装箱的样式进行 排列
2. 设置zi控件之间的 排版关系 (多个按钮的相对位置)
3. 设置子控件的 具体位置,大小,和与父控件的 margin
4. 更新 约束的 相对frame

1.2.1 约束的使用

当使用 frame的时候,需要设置x y w h 四个信息
当使用约束的时候, 也必须包含 x y w h 四个信息

1.2.2 设置约束时的 警告

红色警告 : 1. 约束条件不足,(x y w h 四个条件有缺失)
2. 约束条件有冲突 (改变约束的时候 先删除之前的约束 )

黄色警告 : x y w h 都有设置,但是展示的位置 与 约束的位置 不一

解决方法 : update frame

1.2.3 设置控件之间的约束

  1. 控件处于界面的 边界处, 建议以父控件为基准
  2. 控件包含具体值的约束和相对的约束,先设置具体的约束
  3. 一个控件 一个的设置约束
  4. 复制控件的时候 先把之前控件的 约束全部删除,避免约束的冲突

案例实现

  1. 在界面上 有一个蓝色的View ,距离上 左 右 各有20 个间距 高度是70
  2. 在蓝色的VIew 下方有一个 红色的View , 红色的View 距离蓝色的View 有 20 的距离
  3. 红色的View和蓝色的 VIew 左对齐
  4. 红色的View的高度 与蓝色一致 ,高宽是蓝色的一半

约束的核心计算公式

    firstItem = secondItem * multiplier + constent ;
constent 相对偏移量 (注意正负的取值)
注意 :当一个控件里面有内容的时候可以只设置 x y 不设置 w h , 控件的w h 会根据内容来获取

1.3使用代码添加 约束

1.3.1 先取消autoresizing

    blueView.translatesAutoresizingMaskIntoConstrains = NO;

1.3.2 设置约束

firstItem = secondItem * multiolier + constent ;

//第一个参数:WithItem :代表的是 firstItem
//第二个参数:attribute:NSLayoutAttributeTop 要做约束的线是那一条
//第三个参数:relatedBy  比较的方式  =  <= >=
//第四个参数:toItem 代表的是secondItem 第二个控件
//第五个参数:attribute:<#(NSLayoutAttribute)#> 相对于第二个控件的什么位置

NSLayoutConstraint *blueViewTop = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:20];
注意:约束 添加的(约束由那个控件进行添加),如果不存在比较关系 –> 约束放在自身, 如果存在比较关系 –> 就去找比较控件他们相同的父控件 然后添加,
[self.view addConstrain:blueViewTop]  ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值