2017-01-22 9 views
0

私はどこでも必要なものを正確に行うための例が見つからないので、私は助けが必要です。Swift 3 - アニメーションシーケンス停止時にperformSegue

私はだから私はそれがあまりにもすぐにセグエを呼び出してアニメーション化

InitImage.animationImages = [ 
    UIImage(named:"load1.png")!, 
    UIImage(named:"load2.png")!, 
    UIImage(named:"load3.png")!, 
/* 20 more images... */ 
] 

InitImage.animationDuration = 2.5 
InitImage.animationRepeattCount = 1 
InitImate.startAnimating() 

てみました、それが完了しています一度、その後(それは私の主な問題です)performSegueを呼び出す

、シンプルなPNGシーケンスをアニメーション化します。私は、私はおそらく

UIView.animate(withDuration : ...) 

を使用する必要があります。しかし、私は、ファイルのシーケンスをアニメーション化Swift3で記述された例を見つけることができないことがわかりました。

誰かが私に道を示すことができますか?ありがとう。

+1

私はアニメーションGIFのような一連の静止画像を循環させるUIView animateWithDurationバリアントはないと思います。現在使用しているコードを使用する必要があります。 Axelのアニメーションが完了したときに発動するようにデュレーションが計算されるタイマーを作成するというソリューションは、おそらく最善の方法です。 –

答えて

1

私が考える最も簡単な方法は、タイマー

Timer.scheduledTimer(timeInterval: InitImage.animationDuration * Double(InitImage.animationImages?.count ?? 0), target: self, selector: #selector(push), userInfo: nil, repeats: false) 

とセレクタ

func push() { 
.... perform segue 
} 
1

を作ることである自己@objcのUIViewControllerであるため、最も簡単なオプションは、afterDelayとperformSelectorを使用することです。

self.perform(#selector(segueToDetailViewController), with: self, afterDelay: InitImage.animationDuration) 

セレクタ:

func segueToDetailViewController() { 
    self.performSegue(... etc ...) 
} 

上記のコードでは、コードを実行したときに、すべての画像のアニメーションの長さが2.5秒であることがわかったので、アニメーションの長さに画像の数を掛けていません。

関連する問題