A403571543f69c1331bd48f392522824
iOS 中AutoLayout常用功能

介绍几种AutoLayout的常用功能

AutoLayout,即自动布局在iOS开发中已经无处不在了,常用添加约束,在这里就不介绍了,介绍几种开发中常用,而你却不怎么用过的功能。包括(AspectRatioContent Hugging PriorityContent Compression Resistance Priority

一、AspectRatio

在AutoLayout中,AspectRatio设置宽高比,可以让我们的控件进行等比例的设置,无论如何我们改变它的宽度/高度,控件都会等比的变化。

当我们无论如何拖动slider,改变图片的宽度,我们的高度会自动等比例变化,永远保持你设置AspectRatio的比例。

  • AspectRatio在哪?如图:

    当我们勾选了AspectRatio,我们就可以设置它的值了。我这里设置的16:9的比例。

imageView 的全部约束设置
1. width = 200、默认为200
2. top = 348
3. 水平居中
4. AspectRatio = 16:9
可以发现,我们并没有设置imageView的高度,因为高度根据AspectRatio自动计算了。

我们的需求当我们拖动slider,改变imageView的width,height根据AspectRatio自动计算,来保持16:9的比例。

实现代码
static const CGFloat orignalWidth = 200;

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imageVIewWidthCons;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

}

- (IBAction)sliderValueChanged:(UISlider *)sender {

    // 改变imageView的宽度
    _imageVIewWidthCons.constant = orignalWidth * sender.value + orignalWidth;
}

二、Content Hugging Priority

top Created with Sketch.