UIView animateWithDuration und UIProgressView setProgress
Möchte ich animieren, meine UIProgressView
übergang von 0 auf 1 während 10 Sekunden.
Code:
[UIView animateWithDuration:10.0 animations:^{
[_myProgressView setProgress:1 animated:YES];
} completion:(BOOL finished)^{
if (finished) NSLog(@"animation finished);
}];
Animation ist in Ordnung, außer, dass die Vollendung und die NSLog
sind immer aufgerufen, sofort.
Versuchte ich animateWithDuration: withDelay:
aber die Verzögerung ist nicht respektiert und sofort ausgeführt.
Hat jemand begegnet das gleiche problem?
Danke für Sie Hilfe.
Ich habe auch vor dem gleichen problem, und ich bin noch eine Lösung zu finden, das animiert die Fortschritte in einem guten Weg. Haben Sie nicht hinterher-Lösung?
Gleiche mit Emilio. Haben Sie eine gute Lösung
seanallen.co/posts/animierte-progress-bar
Gleiche mit Emilio. Haben Sie eine gute Lösung
seanallen.co/posts/animierte-progress-bar
InformationsquelleAutor NtskX | 2014-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seine ein altes problem, aber ich bin immer noch posten hier die Lösung. Die Lösung stellte sich heraus, wirklich einfach.
Alles, was Sie tun müssen, ist:
Hier ist eine gute Erklärung dafür, warum die Dinge arbeiteten falsch für Sie:
http://blog.spacemanlabs.com/2012/08/premature-completion-an-embarrassing-problem/
So können Sie nicht mit
setProgress:animated:
Methode zu animieren, den Fortschritt anzeigen und sich Ihren gewünschten Verhaltencompletion
block als gut. Jedoch, nur die Einstellungprogress
innerhalb des Blocks wird nicht animiert, daprogress
ist nicht eine animierbare property.Finden Sie unter apple-Dokumentation, die sagt, dass es notwendig für die Eigenschaft, die animiert werden:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/clm/UIView/animateWithDuration:animations:
So dass Sie einfach aktualisieren Sie den Wert von
progress
Eigenschaft außerhalb der belebten block und das layout der Blick in die belebte block.sehr schön. Für diesen Fall, würden Sie wahrscheinlich verwenden wollen linearen zeitlichen Verlauf
[UIView animateWithDuration:10.0 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
Richtige Antwort, animieren eine animation mit
UIView.animate(:)
ist falsch und nicht zurücksetzen der animation-Schicht am Ende.Hallo, Jungs nicht diese Zeile sonst werden Sie nicht in der Lage zu sehen, die Animationen. wenn Sie sich bewegen, auf nächsten Bildschirm.
[_myProgressView setProgress:1.0f animated:YES];
InformationsquelleAutor paresh
Machen Sie es sich einfach, statt mit NSTimer wie,
Unten ist die Funktion, welche updates Fortschritt,
Hoffe es hilft....
InformationsquelleAutor Pradheep Narendran P
Es ist eine alte Frage, aber ich hatte ein ähnliches problem und hier meine Lösung (sorry, es ist in Swift). Die Fertigstellung Teil wird aufgerufen, wenn die animation beendet ist. Es ist von innen eine benutzerdefinierte UIProgressView Klasse.
InformationsquelleAutor Alexander Johmann
Was ich herausgefunden habe ist beides UIview-Animationen und Fortschrittsanzeige animatons, dass arbeiten viel schöner und animiert die progressview reibungslos. Wenn Sie nur die Kombination von animation und progressview animation ausgelöst wird, direkt ohne Rücksicht auf die UIview animation-timer.
Fühlen Sie sich frei, passen Sie die animation manchmal sogar besser und fließende übergänge
InformationsquelleAutor EmilDo