前言

目前有一种UI设计,简单来说就是各种小的,种类不同的子视图堆叠,常见于各大App列表中,比如外卖软件商家列表里面的各种tag堆叠,社交App个人信息里的各种tag堆叠等等。 这时候使用UIStackView往往会有事半功倍的奇效。鉴于对于UIStackView详细介绍的文章太多这里就不再过多赘述,仅写一简单使用范例。
XHNj1O.md.png

简单使用

1.创建UIStackView,并添加需要显示的子视图。

_stackView = [[UIStackView alloc] init];
_stackView.spacing = 5;
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.alignment = UIStackViewAlignmentCenter; 
[_stackView addArrangedSubview:self.nameLabel];
[_stackView addArrangedSubview:self.boutiqueView];
[_stackView addArrangedSubview:self.qualityView];
[_stackView addArrangedSubview:self.scheduleLabel];
[_stackView setCustomSpacing:2 afterView:self.boutiqueView];  

2.布局UIStackView
使用约束给UIStackView布局,一般情况只需top,left,right即可。
根据数据条件,控制子视图显隐即可。
3.特别的
如果子视图长度超过UIStackView,可以设置子视图的约束优先级,优先挤压某个子视图即可。

- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis API_AVAILABLE(ios(6.0));