UIHorizontalStackView
和纵向的集合视图(也称为垂直stackview)之间有什么区别?
CollectionView
不能水平和垂直吗? 为什么人们会同时使用两者?
UIStackView
可以做到什么,而集合视图无法做到?
UIHorizontalStackView
和纵向的集合视图(也称为垂直stackview)之间有什么区别?
CollectionView
不能水平和垂直吗? 为什么人们会同时使用两者?
UIStackView
可以做到什么,而集合视图无法做到?
是的,使用流式布局或自定义布局的集合视图可以垂直或水平。当使用流式布局时,很容易配置一列项目,这些项目都设置为其内在内容大小。
堆栈视图基本上是该功能的简化和专业版本。它取消了集合布局的灵活性,而换取了一个简化的界面。
根据您的用例,您可能不需要集合视图的复杂性。还有一些不错的小功能,例如,如果您有要显示的选项列表,但某些选项在某些情况下不适用,则可以隐藏不适用的选项,堆栈视图将处理它。在集合视图中隐藏项目需要更多的配置。
堆栈视图也是完全在接口生成器中创建的容器视图的非常轻量级的选项,并且不需要代码。通过使用它管理的子视图的内在内容大小来流动布局,从而用堆栈视图替换了大量自动布局约束。您还可以非常有效地嵌套堆栈视图以形成大多数表格类型布局。
集合视图包含单元格,用于数据展示。堆栈视图是在容器内布局视图的一种方式。 堆栈视图不像集合视图那样使用代理与数据进行交互。 集合视图以数据为中心,而堆栈视图则专注于布局。
UICollectionView类似于网格布局,而UIStackView只适用于1维:垂直或水平。
UICollectionView类似于UITableView,但它支持多个单列布局。
集合视图与表视图具有相同的常规功能, 只是集合视图能够支持不止单列布局。集合视图支持可定制的布局, 可用于实现多列网格、平铺布局、循环布局等等。如果需要,你甚至可以动态更改集合视图的布局。
与
UIStackView类提供了一个简化的界面,用于在列或行中布置一组视图
集合视图是更为复杂的 UI 元素,需要一个数据源对象和布局等。
栈视图似乎是替代多个元素应用多个约束来进行按钮堆叠或表单中标签和文本框排列等技巧的方式。
栈视图也没有委托,并且没有选择项或类似机制。