@chenbinghua
2015-09-12T10:35:41.000000Z
字数 784
阅读 1443
iOS笔记
以下这段文字引用自叶孤城的博客
AutoLayout到底是什么?其实就是个约束布局,有点像Android的relativelayout,想想用代码写个UILabel怎么写?
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 460, 200, 200)];
[self.view addSubview:label];
有没有想过CGRect为什么要这么写?很简单,因为你确定一个控件的位置,肯定要坐标,就是frame.origin,有了坐标就确定了这个控件的左上角的位置,(x1,y1),那么有了宽和高,系统就能自己计算出右上角(x2,y2),左下角(x3,y3),和右下角的位置(x4,y4)。有了这四个点,系统就能绘制出一个矩形了(要知道原生的控件都是矩形的)。
其实AutoLayout本质上就是用各种条件来告诉系统这四个点的位置。
storyboard根据控件的内容计算控件的宽高,但也可以指定固定的宽高,所以给定X,Y值就能添加约束
UILabel
UIButton
UIImageview(需给定图片)
在修改了约束之后,只要执行下面代码,就能做动画效果
[UIView animateWithDuration:1.0 animations:^{
[添加了约束的view layoutIfNeeded];
}];