Vorrei sapere se è possibile che alcuni pulsanti causino una dissolvenza da un'immagine di sfondo a un'altra? Il seguente codice I risultati in un cambiamento improvviso dall'immagine corrente, background-image-1
, alla nuova immagine, background-image-2
.È possibile sfumare tra due immagini di sfondo della vista?
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)
}
Grazie
EDIT
Anche se la risposta accettata funziona, stavo trovando lievi difetti quando alterna rapidamente tra le immagini. Un metodo simile utilizzando UIView.animateWithDuration
risolve questo:
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()
})
}
Grazie per il tuo suggerimento. L'ho provato nella sezione ** EDIT ** della domanda. Sfortunatamente, questo non funziona. Qualche suggerimento, per favore? – Alex
Questo perché il tuo imageView non è stato creato correttamente. Nella vista è apparso il metodo, impostare il centro di imageView al centro della vista e le sue dimensioni alle dimensioni della vista. – penatheboss
Questo sì, mi dispiace. Si prega di vedere le modifiche. – Alex