gpt4 book ai didi

ios - UICollectionView 每 x 个单元格有不同的单元格

转载 作者:行者123 更新时间:2023-11-30 12:33:08 24 4
gpt4 key购买 nike

所以我想在我的 UIcollectionView 中添加广告。在每 4 个文件夹之后,我想展示一个广告(总共 3 次,因此是第 4,9 和 14 行)。

我尝试过以下方法:

  override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if indexPath.row == 4 || indexPath.row == 9 || indexPath.row == 14 {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "AdUnitsCollectionViewCell", for: indexPath) as? AdUnitsCollectionViewCell
//cell?.addSubview(AdUnitController().getBannerView(2))
//cell?.view = AdUnitController().getBannerView(2)
cell?.view.adUnitID = "/6499/example/banner"
cell?.view.rootViewController = self
cell?.view.load(DFPRequest())
return cell!
} else {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: FolderViewCellIdentifier, for: indexPath) as? FolderViewCell
cell!.configure(folders![indexPath.row])
return cell!
}
}

这确实会在每 4 个文件夹后显示广告 3 次,但现在该 indexPath.row 的文件夹不再显示(4、9 和 14)。有没有办法可以将我的广告添加到 CollectionView 和我的文件夹中?

谢谢!

最佳答案

首先,如果您想将其添加到 Collection View 中(将是total_folder+total_add),则必须增加项目/行的总数,但正如@bhmahler所说:只需添加行数即可还不够,您需要考虑负偏移

你可以做的是,你可以记录它进入if block 的次数,如果它进入这个 block ,则增加计数

if indexPath.row == 4 || indexPath.row == 9 || indexPath.row == 14 {
count+=1 //which is initially set to zero
}

现在,在 else block 中,您可以简单地减去索引路径中的计数,如下所示

else {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: FolderViewCellIdentifier, for: indexPath) as? FolderViewCell
cell!.configure(folders![indexPath.row-count])
return cell!
}

确保在 Collection View 委托(delegate)方法之外设置count=0

抱歉,代码不完整,因为我不知道 swift。希望它有帮助

关于ios - UICollectionView 每 x 个单元格有不同的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43210048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com