TableView和CollectionView在与Swift相同的ViewController中

时间:2016-03-14 20:56:58

标签: ios swift uitableview uicollectionview

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

It should look like this (image here)

我找到的唯一答案是在CollectionView的{​​{1}}中设置我的TableViewCell

我做了但是它分开滚动。

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

我很绝望,因为我在许多其他应用程序中看到了这个设置,我认为答案很简单,但我无法在任何地方找到它。

任何人都可以帮助我吗?非常感谢你!

3 个答案:

答案 0 :(得分:4)

另一种选择是将其设置为具有两个部分的单个集合视图,一个用于查看和列出作为tableview,另一个用于具有更多集合视图外观。

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

很多方法可以解决这个问题,具体取决于你想要玩什么以及你想学什么:)

答案 1 :(得分:1)

您可以将UITableViewUICollectionView放入UIViewController,并实施UITableViewDelegateUITableViewDataSourceUICollectionViewDataSource

键:

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

  2. 确保tableView.scrollEnabled = false

  3. 以下是一个示例https://www.dropbox.com/s/v6yc40udfk8mqx5/FlexTableCellHeight.zip?dl=0

答案 2 :(得分:0)

设置空白ViewController。然后在ViewController中放置两个ContainmentViewControllers。根据您想要的桌面视图数量以及您希望成为collectionview的数量,根据需要调整它们的大小。然后使用embed从每个containmentViewController创建segues到tableviewcontroller和collectionviewcontroller。这将允许两者同时在屏幕上并单独滚动。

如果你不需要使用TableViewController并且可以只使用tableview,你也可以在tableview下面放置一个containsmentviewcontroller并为你的collectionviewcontroller创建embed segue。