Ich habe eine iPad App, in der ich eine UICollectionView verwende und jede UICollectionViewCell nur ein einziges UIImage enthält. Momentan zeige ich pro 9 UIImages (3 Zeilen * 3 Spalten) pro Seite an, ich habe mehrere Seiten.
Ich möchte Pinch Gesture verwenden, um auf die gesamte UICollectionView zu zoomen, um die Anzahl der pro Seite angezeigten Zeilen / Spalten zu erhöhen bzw. zu verringern, und am besten wäre eine schöne Zoom-Animation während der Pinch-Geste!
Zur Zeit habe ich eine Pinch-Geste auf meiner UICollectionView hinzugefügt. Ich erhalte das Pinch Gesture-Ereignis, um die Anzahl der Zeilen / Spalten mit dem Skalierungsfaktor zu berechnen. Wenn es sich geändert hat, aktualisiere ich die vollständige UICollectionView mit:
%Vor%Es funktioniert, aber ich habe während des Übergangs keine sanfte Animation.
Irgendeine Idee? UICollectionView erbt von UIScrollView, gibt es eine Möglichkeit, die UIScrollView Pinch-Gesten-Funktion erneut zu verwenden, um mein Ziel zu erreichen?
Ich gehe davon aus, dass Sie das Standard-UICollectionViewDelegateFlowLayout verwenden, richtig? Stellen Sie dann sicher, dass Sie entsprechend auf die Delegate-Methoden reagieren, und wenn die Pinch-Geste auftritt, einfach das Layout ungültig machen.
Zum Beispiel, wenn ich die Größe jedes Gegenstandes anpassen möchte, während ich kneife:
%Vor% Die Eigenschaft self.scale
dient nur zum Anzeigen, Sie können dasselbe Konzept auf jedes andere Attribut anwenden, dies erfordert kein beginUpdates / endUpdates, da der Benutzer selbst das Timing der Skala mit sich führt.
Hier ist ein laufendes Projekt , falls Sie es in Aktion sehen möchten.
Tags und Links ios uicollectionview zoom uiscrollview