我想知道某个按钮是否可能导致从一个背景图像到另一个背景图像的褪色?下面的代码导致从当前图像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()
})
}发布于 2016-04-03 23:35:53
假设imageView是用于动画的UIImageView。image1是你最初的形象。image2是新的图像。试试这个:
let crossFade: CABasicAnimation = CABasicAnimation(keyPath: "contents")
crossFade.duration = 1
crossFade.fromValue = image1.CGImage
crossFade.toValue = image2.CGImage
self.imageView.image = image2
self.imageView.layer.addAnimation(crossFade, forKey: "animateContents")希望这能有所帮助。
发布于 2016-04-03 23:21:17
背景颜色应该是一个可动画的属性,但是图案颜色不能工作。
您实际上想要一个模式颜色,还是使用它来插入图像作为视图的背景,而不使用重复的模式?
https://stackoverflow.com/questions/36392223
复制相似问题