Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 什么';在Xcode 7中,UIStackView和UICollectionView之间的区别是什么?_Swift_User Interface_Uicollectionview_Ios9_Uistackview - Fatal编程技术网

Swift 什么';在Xcode 7中,UIStackView和UICollectionView之间的区别是什么?

Swift 什么';在Xcode 7中,UIStackView和UICollectionView之间的区别是什么?,swift,user-interface,uicollectionview,ios9,uistackview,Swift,User Interface,Uicollectionview,Ios9,Uistackview,UIHorizontalStackView和集合视图(也是垂直stackview)之间有什么区别 collectionView不能是水平和垂直的吗?为什么人们会同时使用两者 UIStackView有哪些功能是集合视图无法完成的?是的,使用流布局或自定义布局的集合视图可以是垂直的,也可以是水平的。使用流布局时,很容易配置一列项目,这些项目都设置为其固有的内容大小 堆栈视图基本上是一个修剪和专门的版本。它剥夺了集合布局的灵活性,并反过来为您提供了一个流线型的界面 根据您的用例,您可能不需要集合视图的

UIHorizontalStackView
和集合视图(也是垂直stackview)之间有什么区别

collectionView
不能是水平和垂直的吗?为什么人们会同时使用两者


UIStackView
有哪些功能是集合视图无法完成的?

是的,使用流布局或自定义布局的集合视图可以是垂直的,也可以是水平的。使用流布局时,很容易配置一列项目,这些项目都设置为其固有的内容大小

堆栈视图基本上是一个修剪和专门的版本。它剥夺了集合布局的灵活性,并反过来为您提供了一个流线型的界面

根据您的用例,您可能不需要集合视图的复杂性。还有一些不错的小功能,比如如果你有一个选项列表要显示,但有些不适合所有情况,那么你可以隐藏那些不适合的选项,堆栈视图将处理它。在集合视图中隐藏项需要更多的配置

堆栈视图还为完全在interface builder中创建的容器视图提供了一个非常轻量级的选项,不需要代码。通过这种方式,堆栈视图通过使用其管理的子视图的内部内容大小来替换许多自动布局约束。您还可以非常有效地嵌套堆栈视图,以形成大多数表格类型的布局

  • UICollectionView类似于网格,UIStackView仅适用于1维:垂直或水平

  • UICollectionView类似于UITableView,但它支持多个单列布局

    集合视图提供与表视图相同的常规功能 除了集合视图能够支持的不仅仅是 单列布局。集合视图支持可自定义的布局 可用于实现多列网格、平铺布局、, 圆形布局,等等。您甚至可以更改 如果需要,可以动态查看集合

    vs

    UIStackView类为布局提供了一个简化的界面 列或行中的视图集合

  • 对我来说,使用StackView,您将受益于“自动布局”功能,例如:您在堆栈中放置4个视图,该组件将根据这些视图的大小决定这些视图在屏幕上的显示方式

  • 集合视图是更复杂的UI元素,需要
    数据源
    对象和布局等

    堆栈视图似乎取代了一些技巧,在这些技巧中,您必须对多个元素应用多个约束才能(比如)执行一组按钮,或者为表单排列标签和文本字段


    堆栈视图也没有委托,也没有用于选择项目或类似内容的机制。

    集合视图有单元格,可以使用数据表示。堆栈视图是在容器中布局视图的一种方式。堆栈视图无法像集合视图处理委托那样处理数据。集合视图以数据为中心,堆栈视图以布局为中心。

    如果您问自己为什么会有这两个选项,这两个选项看起来非常相似-有时您会创建一个自定义单元格(tableview或collectionview)并将添加另一个tableview或collectionview作为子视图-然后您会想知道UIStackView是如何工作的….

    并没有真正回答这个问题;集合视图可以很容易地配置为一行或一列。我回答了第一个问题。@Caleb您可以将集合配置为一行或一列,但不能将StackView配置为多行或多列(我的意思是本机配置)。您应该查看collectionview和iOS 9.0发布的UIStackview