是否可以在两个视图背景图像之间淡入淡出?

时间:2016-04-03 22:51:34

标签: ios swift

我想知道某个按钮是否可能导致从一个背景图像淡入另一个背景图像?我在下面的代码中导致从当前图像'Creating a FileSystemObject Public FSO As New FileSystemObject Sub DiskSpace() Dim drv As Drive Dim Space As Double Set drv = FSO.GetDrive("P:") ' Creating the the Drive object Space = drv.FreeSpace Space = Space / 1073741824 'converting bytes to GB Space = WorksheetFunction.Round(Space, 2) ' Rounding MsgBox "P: has free space = " & Space & " GB" End Sub 到新图像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

2 个答案:

答案 0 :(得分:7)

Say 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")

希望这会有所帮助。

答案 1 :(得分:0)

背景颜色应该是可动画的属性,但图案颜色不能起作用。

你真的想要一种图案颜色,或者你是否使用它来插入图像作为视图的背景而不使用重复图案?