自动布局使用
1. ios5.0开始出现ARC ios6.0出现AutoLayout
2. 在Autolayout之前,有Autoresizing可以作屏幕适配。Autoresizing使用:
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
uiview.autoresizingMask=UIViewAutoresizing;
3. Autoresizing和AutoLayout不能同时使用。
4. 代码实现Autolayout的注意点
要先禁止autoresizing功能
view.translatesAutoresizingMaskIntoConstraints = NO;添加约束之前,一定要保证相关控件都已经在各自的父控件上
使用Autolayout后就不要再给view设置frame
约束NSLayoutConstraint要加到最近的公共父控件上
5. 在修改了约束之后,执行下面代码实现动画效果
[UIView animateWithDuration:1.0 animations:^{
[添加了约束的view layoutIfNeeded];
}];
6. UILabel可以通过设置约束来实现大小随文字内容改变。
设置两个位置的约束后,再设置一个Equal类型的Height Constraint,可以让label在宽度固定的情况下,高度自由伸缩。
设置两个位置的约束后,再设置一个Less Than or Equal类型的Height Constraint,可以让label在小于一定宽度的范围内自由伸缩。
可以同时设置两个Height(Width)约束,两个约束类型分别为Less Than or Equal和Greater Than or Equal。保证Height(Width)在一定范围之内。