2017-03-16 3 views
0

私はIOS開発ではかなり新しいので、この初心者の質問で私と一緒に裸です。私は、自動的に他の人に移り変わる必要がある画像をいくつか設定して、それまではすべてがうまく動作します。ここに私のコードです:Swift 3でアニメーション設定された画像にフェードを追加するにはどうすればよいですか?

image1 = UIImage(named: "loginBg1.png") 
image2 = UIImage(named: "loginBg2.png") 

images = [image1, image2] 
animatedImage = UIImage.animatedImage(with: images, duration: 3) 
backgroundImageView.image = animatedImage 

今、私はそれらが移行するときに退色する必要があります。基本的には、アニメーションの中間にフェードトランジションを追加する必要があります。

また、経験があれば、画像にケン・バーンズ・エフェクトを追加したいと思っています。その前と後の各画像をパン/ズームする必要があります。

迅速な対応を感謝します!

答えて

1

画像のアニメーション化は、トランジションと同じではありません。実際にしたいのは、2番目の画像を表示するトランジションにアニメーションを追加することです。あなたはCATransition()でそれを行います。

チェックコードのためこの回答: https://stackoverflow.com/a/9773674/2584110

あなたは缶詰のソリューションをしたい場合にも、このgithubのライブラリーを試してみてください。 https://github.com/calm/KenBurns

それはケンバーンズエフェクトとトランジションです。

+0

ありがとう:このような関数を呼び出し

https://github.com/jberlana/JBKenBurns

アップデート:私はpodこのようなを使用することをお勧め! – olbanana

0

現在の画像をフェードアウトして新しい画像をフェードインさせる機能です。

extension UIImageView{ 
    func transition(toImage: UIImage, withDuration duration: TimeInterval){ 
     UIView.animate(withDuration: duration, animations: { 
      self.alpha = 0 
     }) { (bool) in 

      UIView.animate(withDuration: duration, animations: { 
       self.image = toImage 
       self.alpha = 1 
      }, completion: nil) 
     } 
    } 
} 

ケンバーンズ効果はより困難です。助けのための

let transitionToImage = UIImage.init(named: "newImage")! //newImage is the name of the Image Set in xcassets 

let duration: TimeInterval = 1 //seconds, can also be fractions, i.e. 0.3, 0.5 
imageView.transition(toImage: transitionToImage, withDuration: duration) 
+0

こんにちは、ありがとう、しかし、あなたは一歩一歩進んでこの使い方を教えてください。つまり、拡張機能を実装しましたが、この関数をどのように呼び出すのですか? ここでは初心者の方に感謝します。 – olbanana

+0

ありがとうございました! PS:これを見いだす人のために、この関数で一度呼び出された画像は範囲外になります。制約は適用されていないと思います。 – olbanana

関連する問題