这是关于自动布局的第二篇文章。
<< Auto Layout的使用
上一篇文章介绍了如何使用Auto Layout,这一篇文章主要介绍堆栈视图(Stack View)。Stack View提供了一种轻松的方式来使用Auto Layout,不需要引入复杂的约束。单个堆栈视图定义用户界面的行或列,堆栈视图根据以下属性来排列其子视图。
- axis:定义Stack View的方向,水平方向或竖直方向,只适用于
UIStackView
。NSStackView
中定义方向使用orientation
属性。 - distribution:设定视图沿轴线的排布方式。
- alignment:设定如何沿轴线垂直方向排布子视图。
- spacing:设定子视图间距。
UIStackView
适用于iOS 9.0+和tvOS 9.0+,NSStackView
适用于macOS 10.9+。这篇文章只讲解UIStackView
。
使用Stack View时可以先从对象库中拖拽出Horizontal Stack View或Vertical Stack View到storyboard,后把需要添加的视图放进Stack View;也可以先添加视图,后点击Auto Layout工具Embed in Stack,Auto Layout会根据视图布局插入水平或垂直堆栈视图,也可以点击Editor > Embed In > Stack View插入堆栈视图,与点击Embed In Stack插入没有区别。
1. 创建demo
这里使用Tabbed Application的模板创建demo,Product Name为StackView,选择文件位置,创建工程。
下面通过三个示例来学习Stack View。
2. 示例1
打开刚创建demo的Main.storyboard,在First Scene添加以下视图:第一行为UILabel
和UISwitch
,第二行为两个UIImageView
。
选中第一行的UILabel
和UISwitch
,点击Embed In Stack插入Stack View。打开Attributes Inspector,设置Stack View的属性如下:
- Axis:Horizontal,自动创建的应该为Horizontal,不需要修改。
- Alignment:Center
- Distribution:Fill,不需要修改。
- Spacing:
16
选中两个UIImageView
,重复上面插入Stack View步骤并修改属性,属性与上面相同。UIImageView
中图片的Content Mode属性为Aspect Fit。
选中刚添加的两个Stack View,点击Embed In Stack再次插入一个堆栈视图。堆栈视图可以嵌入堆栈视图。界面构建器会自