Changer le sens de défilement dans UICollectionView
J'ai un UICollectionView qui j'ai de l'installation, tout fonctionne bien (sélection, en-têtes, etc), cependant, je veux changer le sens de défilement dans certaines situations.
En bref si je vais dans le story-board et de changer le scrollDirection il fonctionne très bien mais je veux le faire par programmation!
J'ai essayé de changer le sens de défilement de l'affichage de la collection directement avec quelque chose comme
[myCollectionView setScrollDirection:....and so on.......
Mais cela ne fonctionne pas, je ne peux pas trouver scrollDirection ou similaire.
J'ai également essayé de configurer un flux de mise en page, mais je suis sûr que je fais c'est mal (c'est à dire en essayant de mettre un ViewLayout à un FlowLayout).
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
[myCollectionView setCollectionViewLayout:flowLayout];
Cette plante avec beaucoup de Contrainte de problèmes et je pense que je besoin de faire beaucoup plus de travail avec le flowLayout (de ce que j'ai trouvé c'est un peu au-dessus de moi en ce moment).
Il convient également de noter que je suis en utilisant une mesure de la cellule, les en-têtes et pieds de page.
En bref est-il un moyen facile de faire cela ou pas? OU connaissez-vous une bonne Disposition de Flux tutoriel?
MODIFIER
J'configuration de l'affichage de la collection en tant que telle;
[myCollectionView setDataSource:self];
[myCollectionView setDelegate:self];
- Je mettre en œuvre ces délégué de méthodes et de tous les beaux travaux
viewForSupplementaryElementOfKind
numberOfSectionsInCollectionView
numberOfItemsInSection
cellForItemAtIndexPath
didSelectItemAtIndexPath
J'ai ajouté la source de données et Délégué à l' .h et aussi le FlowLayout délégué MAIS je ne suis pas sûr de ce que je devrait aussi avoir pour le dernier.
Plus de la présentation visuelle est fait dans le Story-Board, il ya quelques choses comme la Police, la taille et la couleur que je ne programmant.
UN AUTRE MODIFIER
C'est le message d'erreur quand j'essaye de changer le FlowLayout, je reçois aussi ce quand je l'ai essayer et d'annuler la mise en page.
Incapable de satisfaire simultanément des contraintes.
Probablement au moins une des contraintes dans la liste suivante est une que vous ne voulez pas. Essayez ce qui suit: (1) examiner chaque contrainte et essayer de comprendre qu'on n'attend pas; (2) trouver le code qui a ajouté les indésirables de la contrainte ou de contraintes et de le corriger. (Note: Si vous voyez NSAutoresizingMaskLayoutConstraints que vous ne comprenez pas, reportez-vous à la documentation de l'UIView propriété translatesAutoresizingMaskIntoConstraints)
"<NSAutoresizingMaskLayoutConstraint:0x89967f0 h=--& v=--& V:[menuCell:0x8991700(50)]>",
"<NSLayoutConstraint:0x8991200 menuCell:0x8991700.bottom == UILabel:0x8992be0.bottom + 100>",
"<NSLayoutConstraint:0x898fd50 UILabel:0x8992be0.top == menuCell:0x8991700.top + 3>"
Va tenter de récupérer par la rupture de contrainte
Pause sur objc_exception_throw pour attraper ce dans le débogueur.
Les méthodes de la UIConstraintBasedLayoutDebugging catégorie sur UIView liste peut également être utile.
J'ai ajouté un peu plus d'infos. C'est un grand tableau, il pourrait être de 50 à 60 articles en 4 ou cinq sections. L'affichage de la collection est une longue barre en bas qui défile horizontalement, le bouton peut être cliqué qui font la collecte augmenter de presque la plupart de l'écran (qui fonctionne) mais je veux le défilement pour déplacer le défilement vertical.
OriginalL'auteur Recycled Steel | 2014-01-13
Vous devez vous connecter pour publier un commentaire.
Ok, essayez d'appeler invalidateLayout sur votre vue de collection comme:
Cela force l'affichage de la collection mise à jour de sa mise au point (Voir la documentation d'apple ici). Je ne suis pas certain, mais je n'imagine pas cette fonction est appelée quand vous changer le sens de défilement.
Pour voir si vous n'importe où près de!
Êtes-vous créer vos propres contraintes dans votre cellule? Si donc, par programmation ou dans interface builder? Le problème semble être que vous êtes peut-être en essayant de garder la hauteur d'étiquette le même, mais garder une certaine distance entre le haut et le bas de la cellule. Si vous êtes à la configuration de vos propres contraintes, essayez de les retirer de la personne avec l'étiquette vers le bas de la cellule, ou peut-être l'un de brider la hauteur de l'étiquette. Ou peut-être que j'ai été aboiements le mauvais arbre avec l'ensemble de ce commentaire!
Il ne ressemble il est tout fait dans interface builder. L'ensemble des contraintes qui pèsent là-bas, alors je suppose qu'ils sont effectués automatiquement. J'ai essayé d'ajouter un peu mais le même.
Faites-vous quelque chose dans le " prepareForReuse méthode sur vos cellules? Si pas, essayez de définir le texte de l'étiquette pour un montant de néant (@"") et toutes les images à néant ainsi pendant que vous y êtes, juste au cas où!
J'ai essayé de retourner nil pour l'afficher dans viewForSupplementaryElementOfKind qui attire les en-têtes et pieds de page, mais qui a fait de même. Je amy faire une copie et de supprimer l'ensemble de l'en-tête pied de page, parce que (comme vous dites) c'est de ressembler à quelque chose.
OriginalL'auteur Matthew Hallatt
ce faire:
Cela fonctionne pour moi.
C'est un travail, une solution parfaite 😀
Heureux d'être de l'aide 🙂
OriginalL'auteur Pratham Mehta
Dans swift, vous pouvez le faire:
OriginalL'auteur prolfe