更改集合视图中每个第三个单元格的宽度

Posted

技术标签:

【中文标题】更改集合视图中每个第三个单元格的宽度【英文标题】:Change width of every 3rd cell in collection view 【发布时间】:2016-05-25 23:09:49 【问题描述】:

我想。目前,我正在设置这样的元素的宽度和高度:

  func collectionView(collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize 
    let width = UIScreen.mainScreen().bounds.size.width
    return CGSize(width: width / 2, height: width/2)

如何选择集合视图中的每个第三个元素并使该元素全宽?在 css 中,它是 element:nth-child(3n),所以类似。

【问题讨论】:

【参考方案1】:

看起来很好地使用了modulus 运算符! (或者,真的,%

let offset = 0 //modify to change where it starts
return (indexPath.row % 3 + offset) == 0 ? fullSize : normalSize

【讨论】:

正要回答模数答案。但只是为了帮助其他人在未来看到这一点,他在这里返回 CGSize 而不是宽度,所以你可能想要更新你的代码。 谢谢@NSGangster 我正要问一个 CGSize 答案。 代码是用来替换你想使用的任何东西 - 我不知道“正常”与全宽的参数,更新的占位符。

以上是关于更改集合视图中每个第三个单元格的宽度的主要内容,如果未能解决你的问题,请参考以下文章

不同笔尖的collectionView单元格宽度不会改变

设置集合视图单元格的动态宽度时出现问题

当边界 UICollectionView 更改时调整单元格大小

如何将集合视图单元格设置为所有屏幕的相等行单元格

嵌套集合视图 Swift 4.2

如何更改集合视图锡约束中单元格的位置?