2016-09-30 3 views
1

Ich habe eine Sammlung Ansicht, dass ich horizontal scrollen gemacht habe. Es hat 3 Zeilen und 5 Spalten. Sobald ich das horizontale Scrollen aktiviert habe, füllen sich die Zellen über die Spalten und nicht über die Zeilen. Zum Beispiel habe ich ein Array 1,2,3,4,5,6,8,9,10,11,12,13,14,15,16, die ich verwende, um meine Sammlung zu füllen. Die Zellen würden so aussehen:UICollectionView Horizontal Scrolling - Zellen in Spalten statt Reihen angeordnet

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

Wie kann ich das beheben?

Antwort

0

Das ist das Standardverhalten von horizontal.Wenn Sie möchten, können Sie das Array auf irgendeine Weise sortieren, damit es so angezeigt wird, wie Sie es möchten.

So:

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] 

Nun, wenn Sie diese neue Array als Datenquelle im horizontalen Modus verwenden, es wird wie folgt angezeigt:

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

was passiert, wenn mein Array ist nicht immer die gleiche Anzahl der Zeilen und Spalten. Weil ich möchte, dass die Sammlungsansicht über die Zeilen hinweg gefüllt wird, bis sie voll sind. Sobald sie voll ist, beginnt die nächste Zeile, aber wenn drei Zeilen voll sind, wird eine neue Spalte gebildet und der Benutzer kann nun zur Seite rollen, um die neuen Spalten zu sehen – user6520705

Verwandte Themen