没有二维数组的快速 UICollectionView 部分分离
Posted
技术标签:
【中文标题】没有二维数组的快速 UICollectionView 部分分离【英文标题】:swift UICollectionView section separation without Two-Dimensional Array 【发布时间】:2017-06-12 09:58:44 【问题描述】:例子
// My data to use
let items: [Any] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ...]
/*
// UICollectionView result I want
<Section [Item1, Item2, Item3]>
<Other Section A>
<Section [Item4, Item5, Item6]>
<Other Section B>
<Section [Item7, Item8, Item9]>
<Other Section A>
<Section [Item10, Item11, Item12]>
<Other Section B>
*/
如果我的数据是像下面这样的二维数组,我可以更容易地看到结果。
let items: [[Any]] = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12] ...]
但我认为我应该只使用一维数组。
因为我的项目会经常添加/删除。并且需要API通信..并且需要LoadMore函数..如果使用二维数组,这些事情可能会变得复杂。这个问题与其他部分的位置有关。
可能只有一维数组吗?我的想法是正确的吗?
【问题讨论】:
你如何决定哪个项目放在哪个部分?每个部分只有三个项目吗? @overactor 是的。 【参考方案1】:如果您在每个部分中有三个项目,您可以简单地计算每个部分有多少个部分和项目:
func numberOfSections(in collectionView: UICollectionView) -> Int
return items.count / 3 + 1
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return min(3, items.count - 3 * section)
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let item = items[indexPath.section * 3 + item]
// do something with item
【讨论】:
好答案。谢谢! 我只知道投票.. 但它需要 15 声望。所以我以为我什么都做不了。感谢您的评论,我现在知道“马克”了。我不会忘记的。以上是关于没有二维数组的快速 UICollectionView 部分分离的主要内容,如果未能解决你的问题,请参考以下文章