今天,为大家介绍iOS9推出的一个线性布局神器UIStackView,如果你的项目最低适配iOS9以上的话,就可以愉快地使用了。
在AutoLayout的布局中,我们需要为subview设置各种依赖,当我们需要从其中插入一个view或者删除一个view时,就要在里面更改大量的约束。在纯代码方面,还有Mansonry等框架可以支持,但是如果是xib或者storyboard的话,就只能是在需要修改约束的地方一个个地去修改约束了。而UIStackView只需要预先设置好布局的方式,之后无论是添加还是删除subview,它都会自动地帮我们调整好约束。
下面我为大家介绍一下常用的布局如何使用UIStackView(我用的是代码,xib或者storyboard其实原理也是一样,设置好UIStackView的属性就行)
基础属性
axis:布局的方向,有UILayoutConstraintAxisHorizontal(横向)和UILayoutConstraintAxisVertical(纵向)
alignment:位置,常用的有UIStackViewAlignmentLeading(居左)、UIStackViewAlignmentTop(居上)、UIStackViewAlignmentCenter(居中)、UIStackViewAlignmentTrailing(居右)
distribution:填充方式,常用的有UIStackViewDistributionFillEqually(平均铺满)、UIStackViewDistributionEqualSpacing(等间距)
实例
1、横向平均分布
UIStackView *stackView = [[UIStackView alloc] init];
stackView.axis = UILayoutConstraintAxisHorizontal;
stackView.alignment = UIStackViewAlignmentCenter;
stackView.distribution = UIStackViewDistributionFillEqually;//平均铺满
[self.view addSubview:stackView];
[stackView mas_makeConstraints:^(MASConstraintMaker *make