Centre une UIView verticalement et horizontalement à l'intérieur de la vue parente
J'ai un UICollection vue qui est à l'intérieur d'une UIView. Je suis en train de centre de l'affichage de la collection à l'intérieur de la vue parente. Actuellement manuellement le faire en jouant sur son image (voir code ci-dessous). Il y a un moyen plus facile.
CODE ACTUEL:
self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(COLLECTION_PADDING+10, COLLECTION_PADDING+5, self.bounds.size.width - (COLLECTION_PADDING*2), self.bounds.size.height - (COLLECTION_PADDING+22)) collectionViewLayout:flow];
Veuillez préciser votre problème spécifique ou ajouter des détails supplémentaires à mettre en évidence exactement ce dont vous avez besoin. Tel qu'il est actuellement rédigé, il est difficile de dire exactement ce que vous demandez.
Comment êtes-vous de la création et le positionnement de la vue? Êtes-vous en utilisant l'interface builder? Mise en page automatique? Struts? Tout un tas d'informations manquantes ici.
Comment êtes-vous de la création et le positionnement de la vue? Êtes-vous en utilisant l'interface builder? Mise en page automatique? Struts? Tout un tas d'informations manquantes ici.
OriginalL'auteur jdog | 2014-07-25
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire quelque chose comme ceci:
Swift 3:
Avec cette approche, votre sous-vue sera centré dans son superview quel que soit le superview coordonnées. En utilisant une approche comme ceci:
Va causer des problèmes si le superview a une origine autre chose que de 0,0
OriginalL'auteur Logan
Vous pouvez configurer votre collectionView la largeur et la hauteur, puis utiliser la
center
propriété à modifier leur emplacement.EDIT:
Comme Logan vient de le mentionner dans les commentaires, cela ne fonctionne que si l'autonomie et l'auto.collectionView ont la même superview. Si vous ajoutez collectionView à une vue et que vous voulez qu'il soit centré à l'intérieur de ce point de vue, alors vous pouvez faire:
Mais ce cas ne fonctionne pas lorsqu'il y a rotation impliqués. Dans ce cas, vous auriez à utiliser d'autres moyens. Donc, comme rien en codage, ce n'est pas une réponse nette et précise. Mais pour la plupart des cas, il fonctionne. Si vous avez trouvé dans les rares cas où cela ne fonctionne pas, alors vous êtes probablement va faire plus de l'encadrement sur mesure que juste de centrage à l'intérieur de parents.
CGPointMake(self.center.x,self.center.y);
est égal àself.center
.OriginalL'auteur Putz1103
Entendu des Mises en page?..Cela peut vous aider.
C'est pour l'alignement horizontal
C'est pour l'alignement vertical
OriginalL'auteur Srinivasan N
De l'OMI, vous pouvez essayer de trouver la différence entre votre collectionview et votre parent taille d'affichage. Puis en la divisant par 2 et le remplissage de tous les côtés.
Pas forcément mieux, juste plus simple. Les gens semblent comme la plus simple.
OriginalL'auteur A O