2016-07-10 33 views
0

Ich benutzerdefinierte Sammlung zeigen Zelle für Zelle 'Größe.Wie man Zellen fit macht Collection View

Wenn ich 1 oder 2 Zellen habe, funktioniert es perfekt, aber wenn ich 3 Zellen habe, funktioniert es nicht gut.

Hier ist mein Code für den Fall, ich habe 3 Zellen:

case 3: 
let lastPhoto = info.albumOtherPhoto.photos.first 
let lastPhotoWidth = lastPhoto?.width 
let lastPhotoHeight = lastPhoto?.height 
var sizeForFistPhoto : CGSize! 
var sizeForOtherPhotos: CGSize! 
if lastPhotoWidth > lastPhotoHeight { 
    sizeForFistPhoto = CGSizeMake(screenWidth, screenWidth * 0.5) 
    sizeForOtherPhotos = CGSizeMake(screenWidth * 0.5, screenWidth * 0.5) 
} else { 
    sizeForFistPhoto = CGSizeMake(screenWidth * 0.5, screenWidth) 
    sizeForOtherPhotos = CGSizeMake(screenWidth * 0.5, screenWidth * 0.5) 
} 
self.sizes.append(sizeForFistPhoto) 
self.sizes.append(sizeForOtherPhotos) 
self.sizes.append(sizeForOtherPhotos) 

und CollectionViewDelegateFlowLayout:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    return self.sizes[indexPath.row] 
} 

Das Ergebnis meines Code ist:

enter image description here

Aber ich will es so aussehen:

enter image description here

Ist es möglich, dies in Code zu erreichen, wie ich (weil ich diese in Interface Builder erreichen kann)?

+0

Planen Sie mehr Zellen haben oder nur 3 zu ändern? Wenn ja, sollten Sie Unterklasse Layout-Klasse –

+0

Mehr Zellen, maximal ist 6, habe ich nur 1,2,3 Zellen testen :). – Khuong

+0

Wie erwarten Sie, dass es sich mit mehr Zellen verhält? –

Antwort

0

ich es behoben, indem die -Sammlung Ansicht Fluss-Layout in Interface Bauer vertical zu horizontal

enter image description here