UICollectionViewCell Rembourrage
Je suis en train de mettre zéro de remplissage sur la vue de collection cellules, j'ai mis "Min Espacement" sur l'affichage de contrôleur:
Pourtant, il a encore des lacunes entre les cellules:
J'aimerais aussi en sorte que les cellules envelopper joliment en fonction de la largeur de l'image, par exemple chaque cellule est de 50px de large, donc s'il y a six cellules et j'ai défini la largeur de cadre à 150px, il affiche deux lignes de trois cellules.
Encore si je définis la largeur du châssis, à 150 par:
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect frame = self.collectionView.frame;
frame.size.width = 150;
self.collectionView.frame = frame;
}
Il ressemble à la capture d'écran ci-dessus (trop large).
Si je l'ai mis pour quelque chose de ridiculement petits, tels que 10, il enroule alors, dans une certaine mesure:
La UICollectionViewCell est fixé à 50 x 50:
J'ai également essayé le réglage de la taille de la cellule par programmation, et a également supprimé le UIEdgeInset:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0, 0, 0, 0);
}
J'ai désactivé la mise en page automatique juste au cas où, qui avait de toute interférence. Tous les conseils sur comment je peux enlever le rembourrage et aussi, wrap en fonction de la largeur /hauteur?
ah! Vous êtes à l'aide d'un UICollectionViewController. Avec cela, vous ne pouvez pas changer la taille de l'affichage de la collection. Il remplit toujours l'écran (sauf si vous avez intégré dans un conteneur view controller). Permettez-moi de voir si les encarts peut être modifié...
Merci pour votre temps à essayer de reproduire cela. Je viens de commencer à zéro, bien que le problème demeure. J'ai téléchargé un exemple ici, qui peut être utile: dl.dropbox.com/u/71160589/example.zip
OriginalL'auteur StuR | 2013-01-03
Vous devez vous connecter pour publier un commentaire.
Vous utilisez un UICollectionViewController qui, comme un UITableViewController, a la vue de collection (ou tableau) de la base
view
propriété de la vue-contrôleur. Cela signifie qu'il ne peut pas être redimensionné à partir de l'intérieur de la vue-contrôleur; sa taille est contrôlée par son superview - soit de la fenêtre, dans ce cas, qui est comme la racine-vue-contrôleur, ou un parent-vue-contrôleur si vous avez été son intégration.Si vous voulez réduire l'affichage de la collection de la zone de sorte que les cellules sont juxtaposés l'un à l'autre, vous pouvez modifier la section des encarts de l'affichage de la collection dans la table de montage séquentiel. Dans votre cas, un encart de 15 à gauche et à droite apporte les cellules ensemble - c'est 9 * 50 (450) + 30 = 480 ce qui est de la largeur d'un écran de 3,5 pouces de l'iPhone en mode paysage.
Évidemment, ce sera différent dans l'iPhone 5 ou l'iPad. Vous pouvez calculer les encarts au moment de l'exécution, utilisez la vue d'une collection tenue à une norme sous-classe UIViewController, ou de tenir le UICollectionViewController incorporée-vue-contrôleur. Les deux derniers vont vous permettre simplement à spécifier une taille, ce qui est probablement plus agréable que de calculer les encarts.
Je ne vais pas être en mesure de regarder que pour un temps, mais que vous avez pas connecté les points de vente, ou vous avez quitté la mise en page automatique sur et en sont encore à mettre l'image au lieu de modifier les contraintes.
J'ai eu le UICollectionView dans un UIViewController - ce ne serait pas me permettre de redimensionner la UICollectionView. Cependant, j'ai ajouté un autre point de vue, de sorte que la hiérarchie ressemble maintenant à UIViewController -> UIView -> UICollectionView. J'ai ensuite redimensionné la UIView, et cela a fonctionné. Enfin 🙂 Merci pour votre aide.
OriginalL'auteur jrturton
Je ne suis pas sûr que ces cellules dans la capture d'écran sont 50x50 (EDIT: je suppose qu'ils sont...).
Vérifier si vous avez connecté la UICollectionViewDelegate et UICollectionViewDataSource.
Ce il la méthode que vous avez besoin pour mettre en œuvre
Si cela ne fonctionne pas, essayez de mettre ce code à l'intérieur de viewDidLoad
Oh, oui. Je n'ai pas remarqué qu'il est en mode paysage. La taille ne semble pas juste. Toutefois, l'affichage de la collection dans son deuxième capture d'écran n'a pas une largeur de 150 points. Et à propos de la suggestion de code, je suis tout à fait conscient qu'il est juste de réimplanter ce qu'il pense qu'il a fait dans son storyboard fichier.
Merci pour vos conseils, j'ai re-mise en oeuvre à l'aide de votre code, bien que le problème demeure. J'ai téléchargé un exemple de projet de l'affichage de la bug ici: dl.dropbox.com/u/71160589/example.zip
OriginalL'auteur Nikola Kirev
Mettre en œuvre cette méthode dans votre ViewController
OriginalL'auteur ahmad
la minimumInteritemSpacing est juste que, d'une valeur minimale, de sorte qu'il peut être plus importante si le UICollectionViewLayout classe décide qu'il doit être
Pour corriger cela, vous pouvez créer votre propre mise en page sous-classe, et de mettre en œuvre la
- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath
méthode, quelque chose comme la réponse de cette question (voir la deuxième question, pas celui marqué comme correcte)OriginalL'auteur wattson12