Ios UICollectionView水平滚动-将单元格排序为列而不是行

Ios UICollectionView水平滚动-将单元格排序为列而不是行,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,我有一个水平滚动的集合视图。它有3行5列。一旦我启用了水平滚动,单元格将沿列向下填充,而不是跨行填充。例如,我有一个数组1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,用于填充我的集合视图。细胞看起来像这样 1,4,7,10,13,16 2,5,8,11,14 3,6,9,12,15 如何解决此问题。这是水平的默认行为。如果需要,可以以某种方式对数组进行排序,使其按所需方式显示 像这样: var array = [1,2,3,4,5,6,7,8,9,10,11,12,

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

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

如何解决此问题。

这是水平的默认行为。如果需要,可以以某种方式对数组进行排序,使其按所需方式显示

像这样:

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]

这是horizontal的默认行为。如果需要,可以通过某种方式对数组进行排序,以使其按需要的方式显示

像这样:

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]

如果我的数组的行数和列数不总是相同,那该怎么办。因为我希望集合视图跨行填充,直到它们已满。一旦满了,下一行开始,但当三行满了时,将形成一个新列,用户现在可以滚动到一侧查看新列。如果我的数组中的行和列的数量不总是相同的,则可以查看新列。因为我希望集合视图跨行填充,直到它们已满。满后,下一行开始,但当三行满时,将形成一个新列,用户现在可以滚动到一侧以查看新列