我正在使用Swift构建我的应用程序,我想在同一TableView
中设置CollectionView
和ViewController
。
我找到的唯一答案是在CollectionView
的{{1}}中设置我的TableViewCell
。
我做了但是它分开滚动。
我找到的解决方案是禁用TableView
滚动,然后通过对单元格的高度求和来以编程方式配置CollectionView
的高度约束。它完全不完美,因为细胞变得不可重复使用(250+)。
我很绝望,因为我在许多其他应用程序中看到了这个设置,我认为答案很简单,但我无法在任何地方找到它。
任何人都可以帮助我吗?非常感谢你!
答案 0 :(得分:4)
另一种选择是将其设置为具有两个部分的单个集合视图,一个用于查看和列出作为tableview,另一个用于具有更多集合视图外观。
或者将其设置为具有两个部分的单个表视图,其中一个部分每行显示两个并排图像(这是创建此布局的旧学校方式。)
很多方法可以解决这个问题,具体取决于你想要玩什么以及你想学什么:)
答案 1 :(得分:1)
您可以将UITableView
和UICollectionView
放入UIViewController
,并实施UITableViewDelegate
,UITableViewDataSource
和UICollectionViewDataSource
。
键:
使用AutoLayout
确保tableView只有两行,并且
collectionView占据了区域的其余部分。
确保tableView.scrollEnabled = false
以下是一个示例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。