L'alignement de vue de collection cellules pour s'adapter exactement 3 par ligne
Je suis en train de faire la vue d'une collection d'images, de sorte qu'il y a 3 par ligne, sans espace entre les deux.
Ma collection afficher les sources de données sont:
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return posts.count
}
et ce est la façon dont il est mis en place dans mon storyboard (imageView largeur est de 125, un tiers de la 375 largeur de l'écran):
Cependant quand je lance l'application et ajouter des photos, il ressemble à ceci:
Comment puis-je résoudre ce problème afin que je vois 3 images par ligne? Merci pour toute aide!
- Avez-vous vraiment besoin d'une collecte de vue ici? Il est si facile juste pour faire une grille de vues d'images telle que vous la décrivez, dans le code. Si vous n'avez pas besoin de toute autre collecte de vue des fonctionnalités, pourquoi s'embêter avec une vue de collection pour quelque chose d'aussi basique?
- Je suppose que ce serait une autre façon de faire, je vais le garder à l'esprit pour un autre projet. Le problème est résolu maintenant, donc je pourrais aussi bien le conserver en vue de collection - y aurait-il un avantage à l'aide de votre approche au lieu de cela, ou est-il simplement plus facile à mettre en œuvre d'abord?
- Le "avantage" n'aurait été que de toute évidence, vous ne savez pas comment faire une collecte de vue avec la structure souhaitée. Rester avec elle si le problème est résolu, par tous les moyens!
Vous devez vous connecter pour publier un commentaire.
Vous avez à mettre en œuvre les
pour l'espacement des trucs.
Définir la taille de la collectionViewCells comme ceci:
Vous pouvez également ajouter ces fonctions pour obtenir votre espacement de la collectionViewCells correct:
Swift Version 4.2
1- vous devez Vous conformer à UICollectionViewDelegateFlowLayout
2- Vous devez mettre en œuvre collectionView(_:mise en page:sizeForItemAt:) méthode, comme suit:
En supposant que les espaces minimum de 8 -par exemple-,
la sortie devrait être de trois éléments pour chaque ligne, le carré de la taille.
Remarque: Si vous souhaitez définir les espaces entre les cellules à zéro, puis
scaleFactor
devrait être:Espère que cela a aidé.
Vous avez à mettre en œuvre les
UICollectionViewDelegateFlowLayout
pour l'espacement des trucs.
vous pouvez utiliser cette
Ce code est en quelque sorte écrit que vous pouvez modifier la section encart ou minimumInteritemSpacing et ce calculer et de les redimensionner avec ces paramètres
vous pouvez utiliser ce code ou télécharger le projet de Github