zoom gesamte UICollectionView

7

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?

    
sebastien 06.05.2013, 19:58
quelle

2 Antworten

25

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.

    
Can 08.07.2013 02:01
quelle
0

Entschuldigung für meine 2 Cent Frage, ich habe die Lösung gefunden, sehr einfach.

In meinem PinchGesture Callback habe ich gerade folgendes gemacht:

%Vor%

Alle Zellen meiner UICollectionView wurden erfolgreich geändert und mit einem netten transition .

    
sebastien 06.05.2013 22:14
quelle