UIStackView介绍
1.1. UIStackView 是iOS9中新增的一个视图,用来管理一行或一列视图的组合。
2.对于开发者来说堆栈视图(UIStackView)的引入值得一提。我知道对于一些开发者来说使用autolayout设计一些复杂的交互界面是比较困难的。UIStackView正好能帮助到并让我们的开发者的工作变得更容易些。UIStackView提供了一个高效的接口用于平铺一行或一列的视图组合。对于嵌入到StackView的视图,你不用再添加自动布局的约束了。Stack View管理这些子视图的布局,并帮你自动布局约束。也就是说,这些子视图能够适应不同的屏幕尺寸。此外,你可以嵌入一个stack View到另一个stack view中来创建更为复杂的用户界面。不要误解我的意思,这并不意味着你就不需要处理自动布局了。你仍旧要定义一些布局约束来约束stack view。它只是帮你节约了为每个UI元素创建约束的时间,同时它更容易的从布局中添加/删除一个视图。
UIStackView的属性介绍
1.Axis:这个属性是改变UIStackView中的排布方式的属性,其中有水平排布与垂直排布。
2.Alignment:这个属性是其中子视图的位置摆布方式默认是填充摆布。
3.Fill:子视图填充他所在的位置(默认)。
4.Leading:子视图头部对齐。
5.Center:子视图居中对齐。
6.Trailing:子视图尾部对齐。
7.Distribution:子视图的大小。
8.Fill:子视图填充整个UIStackView。
9.Fill Equally:子视图填充空白区域并等分。
- Fill Proportionally:按照目前相对位置进行填充。
11.Equal Spacing:等间距。
12.Spacing设置子视图之间的间距大小。
13.Baseline Relative:如果设置子视图间距的大小为基线到下一个视图的头部。
注意:点UIStackView其实是一个Container View他不能被渲染所以这个视图没有backgroundColor与drawRect方法
示例
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIView *view1 = [[UIView alloc] init];
view1.backgroundColor = [UIColor redColor];
UIView *view2 = [[UIView alloc] init];
view2.backgroundColor = [UIColor orangeColor];
UIStackView *stackView = [[UIStackView alloc] initWithArrangedSubviews:@[view1,view2]];
stackView.frame = CGRectMake(0,
64,
[UIScreen mainScreen].bounds.size.width,
[UIScreen mainScreen].bounds.size.height);
stackView.axis = UILayoutConstraintAxisHorizontal;
stackView.alignment = UIStackViewAlignmentFill;
stackView.distribution = UIStackViewDistributionFillEqually;
stackView.spacing = 20;
[self.view addSubview:stackView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end