是否可以在UICollectionView下有一个UITableView?

时间:2019-07-02 12:28:01

标签: ios swift uitableview uicollectionview

长话短说。我有一个ViewController,它的ColletionView是页面的主要组件。 CollectionView具有2个可重用单元格:页眉和页脚。我希望在页脚中有一个TableView,但是当我尝试连接TableView时,出现以下错误是不可能的:

“非法配置:从ViewController到UITableView的tableView插座无效。插座无法连接到重复内容。”

我的提示是,我想以完全错误的方式实现这一目标。

我想实现以下目标:

enter image description here

2 个答案:

答案 0 :(得分:0)

我假设您确实像这样注册了页脚/页眉:

segmentCollectionView.register(UINib(nibName: /* CellNibName */, bundle: nil), forSupplementaryViewOfKind: UICollectionView.elementKindSectionFooter, withReuseIdentifier: /* CellId */)

然后像这样使单元出队

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
    if kind == UICollectionView.elementKindSectionFooter {
        let cell = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: /* CellId */, for: indexPath) as! /* Your Class */
    } 
    else {
    }
}
  • 因此诀窍在于您注册的单元格类中的页脚,您可以转到xib文件,并在引用/ * Your Class * /
  • 中添加UITableView
  • 链接UITableView in the cell class not the UIViewController class that contains the UICollectionView`
  • 然后在您使单元出队并在单元类内执行所有业务时传递所需的数据

答案 1 :(得分:0)

[已解决]

解决方法如下:我为Footer创建了CollectionReusableView文件,然后正是@karem_gohar说我通过了以下内容:

footer.tableView.delegate = footer.self footer.tableView.dataSource = footer.self

我将tableView连接到CollectionReusableView,我制作了一个数组进行测试,并用数组的元素填充tableView。

ps:我制作了一个TableViewCell并将一个标签链接到它。标签显示了数组的元素。