我想知道是否有可能使某個按鈕導致從一個背景圖像淡入到另一個背景圖像?下面的代碼導致我從當前圖像background-image-1
突然改變爲新圖像background-image-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)
}
感謝
編輯
雖然接受的答案沒有工作,我在圖像之間快速切換時發現輕微毛刺。使用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()
})
}
感謝您的建議。我試圖在我的**編輯**部分的問題。不幸的是,這不起作用。任何建議爲什麼,請嗎? – Alex
這是因爲您的imageView沒有正確創建。在視圖確實出現的方法中,將imageView的中心設置爲視圖的中心,並將其大小設置爲視圖的大小。 – penatheboss
是的,發現了,對不起。請參閱修改。 – Alex