Ich habe eine Bildwand ( UIScrollView
) und da drin habe ich eine Menge UIImageView's
.
Hier ist mein Code:
%Vor%Und hier ist meine IBAction:
%Vor%Und wenn ich benutze:
UIViewAnimationOptionTransitionCrossDissolve
das ist Effekt NUR auf meinem Bild in ScrollView.
Wenn ich in diesem Code UIViewAnimationOptionTransitionFlipFromTop
verwende, wirkt sich das auf meine scrollView aus.
Wie ist es möglich?
Natürlich möchte ich meinen Animationseffekt nur für einzelnes Bild verwenden.
So funktioniert der Übergang konzeptionell:
In Ihrem Fall ist die übergeordnete Ansicht die Bildlaufansicht, sodass die gesamte Bildlaufansicht umgestellt wird. Entgegen Ihrer Wahrnehmung ist dies auch bei einer Überblendung der Fall. Es ist nur so, dass die meisten der scrollview (der Teil, der nicht von fromView abgedeckt wird) vorher und nachher identisch ist, also sieht es so aus, als ob dieser Teil nicht am Übergang teilnimmt - tut es aber.
Wenn ich richtig verstanden habe, arrangieren Sie mehrere Stapel von Bildansichten horizontal in Ihrer Bildlaufansicht, und wenn jemand zweimal auf die "oberste" Bildansicht in einem Stapel tippt, wollen Sie das Bild direkt darunter "aufdecken", ohne die anderen Stapel zu beeinflussen.
Wenn Sie der scrollView für jeden dieser Stapel eine Containeransicht mit derselben Größe wie der Stapel hinzufügen und alle ImageViews für diesen Stapel in diese Containeransicht anstatt direkt in die Bildlaufansicht einfügen, funktioniert sie. Wenn Sie auf tippen, machen Sie einfach einen Übergang von der Tapped-Ansicht zu Null, wie Sie es ursprünglich getan haben. Die Größe des Übergangs auf dem Bildschirm wird auf die Containeransicht beschränkt (grob - Curls und Flips verwenden etwas mehr als den Rahmen).
Abhängig von Ihren Anforderungen möchten Sie möglicherweise die Containeransicht des Stapels entfernen, nachdem das letzte Bild im Stapel entfernt wurde.
Der Grund ist, dass UIViewAnimationOptionTransitionFlipFromTop
erst seit iOS 5.0 verfügbar ist
Von UIView-Klassenreferenz :
UIViewAnimationOptionTransitionFlipFromTop
Ein Übergang, der eine Ansicht um ihre horizontale Achse von oben nach unten kippt. Die obere Seite der Ansicht bewegt sich nach vorne und die untere Seite nach hinten.
Verfügbar in iOS 5.0 und höher.
Deklariert in UIView.h. '
In iOS 4.3 kann dies zu unvorhersehbarem Verhalten führen.
Zunächst muss ein toView
aufgeführt sein, damit transitionFromView
korrekt verwendet werden kann.
Hier ist Apples Beispiel , wie es ist fertig:
%Vor% Ich glaube auch, dass transitionFromView
SuperView als Argument annehmen soll.
Ich denke das ist besser, wenn Sie Ihre UImageView zu einer Container-UIView hinzufügen und die Aktion für den Container statt direkt auf der UIImageView ausführen. Da Sie im Wesentlichen eine übergeordnete UIView zum Animieren benötigen, während Sie während der Animation Unteransichten hinzufügen und entfernen.
Wie Cory sagt, sieht transitionFromView: toView so aus, als ob es eine Zielansicht haben soll. Wenn Sie nur eine Ansicht ausblenden möchten, verwenden Sie eine Methode, die nur für eine einzelne Ansicht verwendet werden soll, z. B. transitionView: duration: options: animations: completion.
Das Beispiel aus der Dokumentation scheint genau das zu tun, was Sie wollen.
%Vor%Tags und Links objective-c ios uiviewanimationtransition uiviewanimation uiviewanimation-curve