如何在UICollectionViewDataSource和UICollectionViewDelegateFlowLayout方法中调用正确的数据源?

问题描述 投票:0回答:1

在UITableViewController中,使用静态UITableViewCells,我试图创建一个可重复使用的网格,每行有一定数量的单元格,可变宽度和高度。

enter image description here

Identifying and fixing auto layout issue from log output中,有人建议UICollectionViews是一种更好的方法。

使用静态UICollectionViewCells,根据https://robkerr.com/how-to-create-a-static-uicollectionview/,我已经能够设置一个集合视图网格。

但是,我很难在另一个UITableViewCell中添加第二个独立的网格。

我以为我可以为UICollectionView创建单独的IB出口,然后使用它来选择要使用的数据。

@IBOutlet weak var myCollectionView: UICollectionView!

@IBOutlet weak var endingsCV: UICollectionView!

extension NounsTVC: UICollectionViewDataSource
{
func collectionView( _ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
    if self == myCollectionView
    {
        print("myCollectionView", cellIds.count)
        return cellIds.count}
    else if self == endingsCV
    {
        print("endingsCV", cellIds2.count)
        return cellIds2.count
    }
}

这会在没有找到Collection View重用标识符的情况下崩溃。

我已经尝试使用UICollectionView身份恢复ID,但我可能没有正确的语法或位置。

如何调用正确的数据源来配置UICollectionViewDataSource和UICollectionViewDelegateFlowLayout方法中的单元格?

ios xcode uicollectionview uistoryboard
1个回答
0
投票

我不确定这是否是最好的方法,但是如果我使用集合视图的实例化名称而不是'self',它就可以工作。

@IBOutlet weak var myCollectionView: UICollectionView!

@IBOutlet weak var endingsCV: UICollectionView!

extension NounsTVC: UICollectionViewDataSource
{
func collectionView( _ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
if myCollectionView == myCollectionView
{
    print("myCollectionView", cellIds.count)
    return cellIds.count}
else if endingsCV == endingsCV
{
    print("endingsCV", cellIds2.count)
    return cellIds2.count
} }
© www.soinside.com 2019 - 2024. All rights reserved.