Wie das anhalten und fortsetzen UIView Animation?
Ich habe eine UIView mit mehreren UILabels, wird die Animation von oben nach unten und Umgekehrt. Eine Art Autoque sagen wir mal 🙂 ich benutze 2 Funktionen:
-(void)goUp
-(void)goDown
Dieser Funktionen starten Sie ein UIView animation auf die gewünschte position.Beide haben eine AnimationDidStopSelector definiert, ruft die andere Funktion am Ende. Das alles funktioniert reibungslos.
Wenn Sie den Bildschirm berühren, mit touchesBegan, ich möchte zum anhalten der aktuellen animation und ändern Sie die vertikale position des UIView mit touchesMoved Veranstaltung. In touchesEnded ich will wieder die animation an die gewünschte Endposition.
Was wäre der richtige Weg, dies zu tun?
Thomas
InformationsquelleAutor Thomas Joos | 2010-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe eine Kategorie UIView, pause-und stop-Animationen:
Dieser Ansatz scheint nicht gut zu spielen mit UIPercentDrivenInteractiveTransition.
InformationsquelleAutor Antoine
Tatsächlich, Sie können immer noch pause-die
UIView
Animationen basierend auf die Antwort auf die Frage, die Wladimir verbunden, wie es meine pauseCABasicAnimations
sowie meineUIView
Animationen nach ich hatte bisher alle meine Animationen alsCABasicaAnimations
und dann Hinzugefügt einigeUIView
Animationen danach, dass ich gedacht hatte, wäre nicht angehalten, aber Sie hat nicht funktioniert. Dies ist dem entsprechenden link.Wollte ich pause meine ganze Sicht, also gab ich
self.view.layer
als die Ebene angehalten werden. Aber für diejenigen, die nicht wissen, überCALayer
's, pass in dieview.layer
dass Sie möchten, angehalten. JederUIView
hat eineCALayer
, so geben Sie nur in die obersteview.layer
relevant für Sie sein. Im Fall von Thomas, auf der Grundlage Ihrer eigenen Antwort, es scheint, dass Sie möchten, um ein pass inself.containerView.layer
angehalten werden.Dem Grund, dass das funktioniert, weil
UIView
Animationen sind einfach eine Schicht auf der Oberseite des Core-Animation. Zumindest ist das mein Verständnis.Hoffe, das hilft, die Zukunft Menschen, die sich Fragen, wie Sie pause-Animationen.
InformationsquelleAutor DonnaLea
Vladimir, die Frage über CAAnimations Sinn machen.. aber ich habe einen Weg gefunden, wie 'pause', damit ich Schritt halten konnte, mit UIView-Animationen:
Was ich hier mache ist mit dem presentationLayer, um herauszufinden, den aktuellen x-Wert für die animierte Ansicht. Danach führe ich eine neue animation überschreibt die original-animation. Stellen Sie sicher, dass setAnimationBeginsFromCurrentstate:JA. Dies bricht die original-animation und stellt die animierte Ansicht nicht zu der Ziel-position (das tut es automatisch ), sondern an der aktuellen position der animation bearb..
Hoffe, das hilft anderen auch! 🙂
Wenn Sie definieren pausedX als int, wird es leise Stimmen, um eine CGFloat. frameStop ist ein CGRect, das ist eine Struktur, die aus einem CGSize und einen CGPoint. Der Nullpunkt ist eine Struktur, die aus zwei CGFloats.
Wie können Sie dies tun, wenn Sie die Animation einer Transformation eher als ein Rahmen?
InformationsquelleAutor Thomas Joos
Ich bin mir nicht sicher, ob es möglich ist mit UIView ' s direkt, aber Sie können es auf jeden Fall tun, animierend-Ansicht CALayers statt. Sehen diese Frage über das anhalten und fortsetzen von CAAnimations.
InformationsquelleAutor Vladimir
Hoffe es wird Euch helfen.
Beim Aufruf der Ebene animieren, wird die Wirkung von layer-Baum und submodus-Ebene animieren.
InformationsquelleAutor rbbtsn0w