UICollectionView水平滚动 - 单元格排列而不是行

UICollectionView水平滚动 - 单元格排列而不是行

问题描述:

我有一个集合查看我做了水平滚动。它有3行5列。一旦我启用水平滚动,单元格将填满沿列而不是跨行。例如我有一个数组1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,我用它来填充我的集合视图。细胞看起来像这样UICollectionView水平滚动 - 单元格排列而不是行

1,4,7,10,13,16 
2,5,8,11,14 
3,6,9,12,15 

我该如何解决这个问题。

这是horizo​​ntal的默认行为。如果您想要以某种方式对数组进行排序,那么它将以您想要的方式显示。

像这样:

var array = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] 
var horizontalSortedArray = [Int]() 
let columns = 5 
let rows = 3 
for i in 0..<columns { 
    for j in 0..<rows { 
     horizontalSortedArray.append(array[j*columns+i]) 
    } 
} 
print(horizontalSortedArray) 
// [1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14, 5, 10, 15] 

现在,如果你使用这个新阵在水平模式您的数据源,它会显示这样的:

1 ,2 ,3 ,4 ,5 
6 ,7 ,8 ,9 ,10 
11,12,13,14,15 
+0

如果我阵列总不是相同行数和列数。因为我希望收集视图填满整行,直到它们已满。一旦完成,下一行开始,但是当三行已满时,将形成一个新列,用户现在可以滚动到一侧以查看新列 – user6520705