0

Ich mag würde 3 kleine Zelle haben, dann 2 große Zellen, und dann drei kleine Zellen wieder, immer wieder, in meinem UICollectionView,kleine und große Zellengröße mit Sequenz in UICollectionView

Ich weiß, dass es etwas zu tun mit dieser Funktion, aber ich bin verwirrt, wie das Ergebnis zu erreichen

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 

} 

Bitte werfen Sie einen Blick auf den Screenshot.

enter image description here

+1

Mögliche Duplikate von [Wie benutzerdefinierte UICollectionView mit 2 oder mehr benutzerdefinierten Zellen erstellen?] (Http://stackoverflow.com/questions/31731675/how-to-create-customized-uicollectionview-with-2-or-more -custom-cells) –

Antwort

5

Sie können Modulo von indexPath.row wie auf diese Weise berechnen.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    if (indexPath.row % 5 == 3 || indexPath.row % 5 == 4) { 
     //return big cell size 
     let size = (collectionView.frame.size.width - minSpace)/2 
     return CGSize(width: size, height: size) 
    } 
    else { 
     //return small cell size 
     let size = (collectionView.frame.size.width - minSpace)/3 
     return CGSize(width: size, height: size) 
    } 
} 

Hinweis: Hier minSpace ist auf kleinstem Raum, die Sie zwischen zwei Zellen wollen.

+0

Könnten Sie bitte auch diese Frage beantworten? http://stackoverflow.com/questions/43221323/using-custom-layout-causes-collectionviewflowlayout-delegate-function-not-being – JayVDiyk

+0

Lassen Sie mich überprüfen, wenn ich eine Lösung habe, werde ich es –

+0

Wow, Vielen Dank Mann – JayVDiyk

Verwandte Themen