Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
Ios TableView和CollectionView与Swift在同一个ViewController中_Ios_Swift_Uitableview_Uicollectionview - Fatal编程技术网

Ios TableView和CollectionView与Swift在同一个ViewController中

Ios TableView和CollectionView与Swift在同一个ViewController中,ios,swift,uitableview,uicollectionview,Ios,Swift,Uitableview,Uicollectionview,我正在使用Swift构建我的应用程序,我想在同一个ViewController中设置TableView和CollectionView 我找到的唯一答案是在TableView的TableView单元格中设置我的CollectionView 我做了,但它会单独滚动 我找到的解决方案是禁用CollectionView滚动,然后通过对单元格高度求和以编程方式配置CollectionView的高度约束。它一点也不完美,因为细胞变得不可重复使用(250+) 我很绝望,因为我在许多其他应用程序中都看到过这种

我正在使用Swift构建我的应用程序,我想在同一个
ViewController
中设置
TableView
CollectionView

我找到的唯一答案是在
TableView
TableView单元格中设置我的
CollectionView

我做了,但它会单独滚动

我找到的解决方案是禁用
CollectionView
滚动,然后通过对单元格高度求和以编程方式配置
CollectionView
的高度约束。它一点也不完美,因为细胞变得不可重复使用(250+)

我很绝望,因为我在许多其他应用程序中都看到过这种设置,我认为答案很简单,但我在任何地方都找不到


有人能帮我吗?多谢各位

设置一个空白的ViewController。然后将两个ContainementViewController放置在ViewController内部。根据希望成为tableview的屏幕数量和希望成为collectionview的屏幕数量,根据需要调整大小。然后使用嵌入创建从每个ContainementViewController到tableviewcontroller和collectionviewcontroller的分段。这将允许两者同时出现在屏幕上并单独滚动


如果您不需要使用TableViewController,只需要一个tableview就可以了,您也可以在tableview下面放置一个ContainementViewController,并创建到collectionviewcontroller的嵌入段。

设置一个空白的ViewController。然后将两个ContainementViewController放置在ViewController内部。根据希望成为tableview的屏幕数量和希望成为collectionview的屏幕数量,根据需要调整大小。然后使用嵌入创建从每个ContainementViewController到tableviewcontroller和collectionviewcontroller的分段。这将允许两者同时出现在屏幕上并单独滚动


如果您不需要使用TableViewController,并且只需要一个tableview就可以了,您也可以在tableview下面放置一个ContainementViewController,并创建到collectionviewcontroller的嵌入段。

另一个选项是将其设置为包含两个部分的单个集合视图,一个外观和布局为tableview,另一个外观为collection view

或者将其设置为具有两个部分的单个表格视图,其中一个部分每行显示两个并排的图像(这是创建此布局的老式方法)


有很多方法可以实现这一点,具体取决于您想玩什么和想学什么:)

另一种方法是将其设置为具有两个部分的单个集合视图,一个部分作为tableview进行外观和布局,另一个部分具有更多集合视图外观

或者将其设置为具有两个部分的单个表格视图,其中一个部分每行显示两个并排的图像(这是创建此布局的老式方法)


有很多方法可以实现,具体取决于您想玩什么和想学什么:)

您可以将
UITableView
UICollectionView
放在
UIViewController
中,并实现
UITableViewDelegate
UITableViewDataSource
UICollectionViewDataSource

关键点:

  • 使用
    AutoLayout
    确保tableView只有两行,并且 collectionView占据了该区域的其余部分

  • 确保tableView.scrollEnabled=false


  • 下面是一个示例,

    您可以将
    UITableView
    UICollectionView
    放在
    UIViewController
    中,并实现
    UITableViewDelegate
    UITableViewDataSource
    UICollectionViewDataSource

    关键点:

  • 使用
    AutoLayout
    确保tableView只有两行,并且 collectionView占据了该区域的其余部分

  • 确保tableView.scrollEnabled=false


  • 这是一个示例,

    一个集合中的两个部分查看对我来说很合理。。你能给我一个链接到一个适当的教程与这种设置吗?具体来说,如何在一个CollectionView中实现两个部分?非常感谢。实际的实现将围绕
    UICollectionViewDataSource
    方法
    numberOfSectionsInCollectionView
    ,并创建一个自定义
    UICollectionViewLayout
    ,该方法以不同的方式处理每个部分。不过,我不知道有任何针对该问题的教程。另一种可能是将表格视图创建为集合视图的标题,并确保标题大小更新为表格视图的大小。好的,谢谢。我知道了。我唯一剩下的问题是我应该在cellForItemAtIndexPath块中写什么?因为
    if section==0{}
    引发了一个错误,
    二进制运算符“==”无法应用于“section.type”和“Int”类型的操作数
    不确定从何处获取section。使用自动扩展的代码,如果indexPath.section==0{…},那么应该使用
    ,否则{}
    一个集合中的两个部分视图对我来说是合理的。。你能给我一个链接到一个适当的教程与这种设置吗?具体来说,如何在一个CollectionView中实现两个部分?非常感谢。实际的实现将围绕
    UICollectionViewDataSource
    方法
    numberOfSectionsInCollectionView
    ,并创建一个自定义
    UICollectionViewLayout
    ,该方法以不同的方式处理每个部分。不过,我不知道有任何针对该问题的教程。另一种可能是将表格视图创建为集合视图的标题,并确保标题大小更新为表格视图的大小。好的,谢谢。我知道了。我唯一剩下的问题是我应该在CellForItemAtIndex中写什么