自动布局使用

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)在一定范围之内。

原文地址:https://www.cnblogs.com/coderkl/p/4320305.html