[关闭]
@chenbinghua 2015-09-12T10:35:41.000000Z 字数 784 阅读 1443

iOS开发之AutoLayout

iOS笔记


一、引言

以下这段文字引用自叶孤城的博客

AutoLayout到底是什么?其实就是个约束布局,有点像Android的relativelayout,想想用代码写个UILabel怎么写?

  1. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 460, 200, 200)];
  2. [self.view addSubview:label];

  
有没有想过CGRect为什么要这么写?很简单,因为你确定一个控件的位置,肯定要坐标,就是frame.origin,有了坐标就确定了这个控件的左上角的位置,(x1,y1),那么有了宽和高,系统就能自己计算出右上角(x2,y2),左下角(x3,y3),和右下角的位置(x4,y4)。有了这四个点,系统就能绘制出一个矩形了(要知道原生的控件都是矩形的)。
其实AutoLayout本质上就是用各种条件来告诉系统这四个点的位置。

二、特殊的控件

storyboard根据控件的内容计算控件的宽高,但也可以指定固定的宽高,所以给定X,Y值就能添加约束
UILabel
UIButton
UIImageview(需给定图片)

三、基于Autolayout的动画

在修改了约束之后,只要执行下面代码,就能做动画效果

  1. [UIView animateWithDuration:1.0 animations:^{
  2. [添加了约束的view layoutIfNeeded];
  3. }];

四、代码实现Autolayout

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注