gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 22:10:26 25 4
gpt4 key购买 nike

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

最佳答案

假设 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")

希望这对您有所帮助。

关于ios - 是否可以在两个 View 背景图像之间淡入淡出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36392223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com