あるボタンがある背景画像から別の背景画像にフェードする可能性があるかどうかを知りたいですか?次のコードは、現在の画像background-image-1
から新しい画像background-image-2
への突然の変更をもたらします。2つのビュー背景画像の間でフェードすることはできますか?
func buttonPressed() {
if let image = UIImage(named: "background-image-2") {
UIView.animateWithDuration(2, delay: 0, options: .CurveEaseInOut, animations: {_ in
self.view.backgroundColor = UIColor(patternImage: image)
}, completion: nil)
}
おかげ
EDIT
受け入れ答えが作業を行いますが、私はわずかなグリッチを見つけることだった画像間の迅速トグルとき。 UIView.animateWithDuration
を用いて同様の方法は、これを解決:
func buttonPressed() {
let oldImageView = UIImageView(image: UIImage(named: "background-image-1"))
oldImageView.frame = view.frame
let newImageView = UIImageView(image: UIImage(named:"background-image-2"))
newImageView.frame = view.frame
newImageView.alpha = 0
view.insertSubview(newImageView, aboveSubview: backgroundImageView)
view.insertSubview(oldImageView, aboveSubview: newImageView)
UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseInOut, animations: {
oldImageView.alpha = 0
newImageView.alpha = 1
}, completion: { completed in
self.backgroundImageView.image = newImage
newImageView.removeFromSuperview()
oldImageView.removeFromSuperview()
})
}
ご意見ありがとうございます。私はその問題の** EDIT **セクションでそれを試みました。残念ながら、これは動作しません。理由は何ですか? – Alex
これは、imageViewが正しく作成されなかったためです。ビューが表示されたメソッドでは、imageViewの中心をビューの中心に設定し、そのサイズをビューのサイズに設定します。 – penatheboss
うん、それは、ごめんなさい。編集内容をご覧ください。 – Alex