我想知道是否有可能使某个按钮导致从一个背景图像淡入到另一个背景图像?下面的代码导致我从当前图像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