2016-09-19 43 views
0

運行時,啓動動畫作品只有我有像我在LaunchScreen.storyboard一個觀點,我縮放在運行這些代碼在viewDidLoad應用在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() 
    }) 

當我關閉應用程序,從設備再次運行此動畫不顯示,但是當我從Xcode運行應用程序時,一切都很好。問題是什麼?

+0

您在終止或關閉應用程序後嘗試過嗎?因爲如果你的應用程序在後臺,那麼它將從viewcontroller開始,最後你離開! – Lion

+0

是的我正在關閉它從最近的應用程序和啓動畫面顯示,但規模動畫不起作用@Lion –

回答

1

這是因爲您的viewDidload在您獲得佈局之前被調用UI。所以,如果你想要任何動畫相關的scaling任何對象,那麼你應該使用viewDidAppear而不是viewDidload

現在,如果您只需要一次用戶啓動應用程序時的動畫,而不是用戶通過導航回到第一個屏幕,那麼您應該設置一些flag並可以將其值存儲在某處以管理它。

所以,請試試viewDidAppear而不是viewDidload

更新:

我已經做一個演示有點像你的設置,它在viewDidload也能正常工作。主要問題是你的持續時間非常短,爲viewdidload來運行它。

一旦試圖改變你的持續時間,如2.0,你會發現你的動畫工作perfact!

+0

謝謝,但多數民衆贊成再次發生 –

+0

檢查我更新的答案!增加你的持續時間,因爲你沒有足夠的時間來展示它! – Lion

+0

是的我發現多數民衆贊成在問題不是viewdidload或viewdidapper。但wt *?爲什麼第二輪持續時間約爲第一輪持續時間的一半 –

0

它可能只是您的設備的緩存,加載以前的實施,嘗試從您的設備中刪除應用程序,然後再次運行。

+0

Alpha動畫的作品,但規模不: –