2016-09-07 1 views
1

OK. Ma collection fonctionne correctement. Mais je veux changer un peu ma disposition. J'ai un tableau avec des nombres différents, donc array.count = 5, j'ai besoin de 5 éléments d'affilée. Je ne sais pas comment l'afficher dans ma vue de collection.Collectionview avec différents éléments d'affilée

Merci pour votre aide.

MISE À JOUR:

maintenant chaque ligne est par exemple 6!

mais je ne sais pas comment gérer avec un tableau de nombres!

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 

     let numberOfCellInRow : Int = 6 
     let padding : Int = 1 
     let collectionCellWidth : CGFloat = (self.view.frame.size.width/CGFloat(numberOfCellInRow)) - CGFloat(padding) 
     return CGSize(width: collectionCellWidth, height: 200) 



} 

Répondre

1

exécution sizeForItemAtIndexPath, qui fait partie du protocole de UICollectionViewDelegateFlowLayout, est comment définir les dimensions d'un UICollectionViewCell dynamique (à savoir, lors de l'exécution). Dans sizeForItemAtIndexPath, créez un objet CGSize qui correspond à la taille de UICollectionViewCell, et utilisez simplement cet objet comme valeur de retour de la fonction dans sizeForItemAtIndexPath. Dans votre exemple, la largeur de cet objet CGSize serait approximativement la largeur de la vue principale divisée par 5. Je dis environ parce que vous aurez également besoin d'espace pour le remplissage entre les cellules ainsi que peut-être des sections non-nulles autour de chaque section de l'UICollectionView.

Pour définir le remplissage entre les cellules, accédez à la sous-fenêtre des inspecteurs d'attributs du storyboard pour votre objet UICollectionView et placez le volet des attributs en mode "Mesures". Vous verrez "Espacement minimum", à la fois "Pour les cellules" et "Pour les lignes". Le champ "Pour les cellules" est l'endroit où vous pouvez spécifier l'espacement horizontal que vous souhaitez entre les cellules. Le champ "For Lines" est l'endroit où vous pouvez spécifier l'espacement vertical que vous souhaitez entre les cellules.