2016-09-19 2 views
0

Laufen habe ich eine Ansicht wie das, was ich habe in LaunchScreen.storyboard und ich bin Skalierung zur Lauf mit diesem Code in viewDidLoad dass:Anwendungsstart Animation funktioniert nur, wenn von Xcode

UIView.animate(withDuration: 0.4, animations: { 
     self.aftab_logo.transform = CGAffineTransform(scaleX: 0.6, y: 0.6) 
     self.aftab_logo.alpha = 0 
     self.login_content.alpha=1 
     }, completion: { _ in 
      self.aftab_logo.removeFromSuperview() 
    }) 

Wenn ich schließe App und läuft wieder von Gerät diese Animation zeigt nicht, aber wenn ich app von Xcode laufen alles ist in Ordnung. Was ist das Problem?

+0

haben Sie versucht, nachdem Sie Ihre App beendet oder geschlossen haben? Denn wenn deine App im Hintergrund ist, wird sie mit viewcontroller gestartet. – Lion

+0

ja, ich schließe es von den letzten Anwendungen und Launch Screen Shows aber Maßstabsanimation funktioniert nicht @Lion –

Antwort

1

Dies ist, weil Ihre viewDidload aufgerufen werden, bevor Sie UI bekommt Layout. Also, wenn Sie eine Animation benötigen Sie scaling irgendein Objekt dann sollten Sie viewDidAppear anstelle von viewDidload verwenden.

Jetzt, wenn Sie Animation nur einmal wünschen, wenn Benutzer App nicht starten, wenn Benutzer zum ersten Bildschirm mit Navigation zurückkommen, dann sollten Sie einige flag setzen und kann seinen Wert irgendwo speichern, um es zu verwalten.

Also, versuchen Sie es in viewDidAppear anstelle von viewDidload!

Update:

ich eine Demo so etwas wie Ihr Setup gemacht haben und es funktioniert gut in viewDidload auch. Hauptproblem ist Ihre Laufzeit ist sehr klein für viewdidload, um es auszuführen.

Sobald versuchen, Ihre Dauer wie 2.0 ändern und Sie werden Ihre Animation arbeiten perfact finden!

+0

danke, aber das passiert wieder –

+0

Überprüfen Sie meine aktualisierte Antwort! erhöhen Sie Ihre Dauer, weil Sie nicht genügend Zeit geben, es zu zeigen! – Lion

+0

Ja, ich habe festgestellt, dass das Problem nicht der Viewdidload oder Viewdidapper ist. aber wt *? Warum dauert die zweite Laufzeit etwa die Hälfte der ersten Dauer? –

0

Es kann nur der Cache Ihres Geräts sein, der eine vorherige Implementierung lädt, versuchen Sie, die Anwendung von Ihrem Gerät zu löschen und erneut auszuführen.

+0

Alpha-Animation funktioniert, aber Maßstab nicht: | –

Verwandte Themen