zoom entière UICollectionView
J'ai un iPad App où je suis à l'aide d'un UICollectionView et chaque UICollectionViewCell contient un seul UIImage.
Actuellement, je suis l'affichage par 9 UIImages (3 lignes * 3 colonnes) par page, j'ai plusieurs pages.
Je voudrais utiliser Geste de Pincement pour zoomer sur l'ensemble de la UICollectionView pour augmenter/diminuer le nombre de lignes/colonnes affichées par page et le mieux serait d'avoir de belles zoom animation pendant le geste de Pincement!
Actuellement, j'ai ajouté un Geste de Pincement sur mon UICollectionView. J'attrape le Geste de Pincement de l'événement pour calculer le nombre de lignes/colonnes en utilisant le facteur d'échelle, si elle a changé de puis-je mettre à jour la pleine UICollectionView à l'aide de:
[_theCollectionView performBatchUpdates:^{
[_theCollectionView deleteSections:[NSIndexSet indexSetWithIndex:0]];
[_theCollectionView insertSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];
Il fonctionne, mais je n'ai pas l'animation en douceur au cours de la transition.
Une idée? UICollectionView hérite de UIScrollView, est-il possible de ré-utiliser le UIScrollView geste de Pincement caractéristique pour atteindre mon objectif?
OriginalL'auteur sebastien | 2013-05-06
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que vous utilisez la valeur par défaut UICollectionViewDelegateFlowLayout, droit? Assurez-vous alors de réagir en conséquence pour le délégué des méthodes, et lorsque le geste de pincement se produit, il suffit d'invalider la mise en page.
Par exemple, si je veux modifier la taille de chaque élément, tout en pinçant:
La propriété
self.scale
est juste pour le show, vous pouvez appliquer le même concept à tout autre attribut, cela ne nécessite pas un beginUpdates/endUpdates parce que l'utilisateur lui-même est porteur du calendrier de l'échelle.Voici un projet en cours d'exécution, dans le cas où vous voulez le voir en action.
Super réponse, curieux de savoir si vous avez la moindre idée de ce à voir si la mise en page est plus "fixe" et vous souhaitez effectuer un zoom in / out et un panoramique (pas de déplacer les éléments). Pensez à une carte par exemple avec des éléments sur la carte UICollectionCells et les carreaux sont susceptibles d'être reusableviews ou similaire.
Pour ma thèse, j'ai écrit une coutume UICollectionViewLayout qui crée quelque chose comme une carte, et son tout à fait possible. Si vous faites la taille du contenu que l'affichage de la collection mise en page des rapports plus gros avec un facteur d'échelle, alors vous pouvez avoir à la fois de zoom et de panoramique.
Qui, par inadvertance, de rend le contenu beaucoup plus grand qu'il doit être, non? :/
eh bien, oui. Quel est votre problème?
OriginalL'auteur Can
Désolé pour mes 2 cents question, j'ai trouvé la solution, très simple.
Dans mon
PinchGesture
de rappel, j'ai juste fait ce qui suit:Toutes les cellules de mon
UICollectionView
sont changé avec succès et avec une belletransition
.[collectionView.collectionViewLayout invalidateLayout]
. J'ai laissé une réponse avec une explication plus approfondie et par l'exemple.S'il vous plaît, pouvez-vous ajouter plus de détails à ce sujet?
OriginalL'auteur sebastien