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