首页 > 解决方案 > 如何以编程方式更改 UIIMage 数组动画的颜色?

问题描述

我目前正在制作一个包含多个 UIImage 元素的 Swift 应用程序。我正需要在我的游戏中添加动画。为了减小项目的大小,我为每个彩色玻璃对象制作了一个破碎动画。我已成功更改动画中第一张图像的图像色调颜色,但未更改后续图像。使用以下代码实现此目的的最佳方法是什么?

shatterImages = createImagesArray(total: 26, imagePrefix: "Shatter")

func createImagesArray(total: Int, imagePrefix: String) -> [UIImage] {
    var imageArray: [UIImage] = []

    for imageCount in 1..<total {
        let imageName = "\(imagePrefix)-\(imageCount).png"
        let image = UIImage(named: imageName)!

        imageArray.append(image)

    }
    return imageArray
}

func animate(imageView: UIImageView, images: [UIImage]) {
    let templateImage = imageView.image?.withRenderingMode(.alwaysTemplate)
    imageView.image = templateImage
    imageView.tintColor = UIColor.blue
    imageView.animationImages = images
    imageView.animationDuration = 0.7
    imageView.animationRepeatCount = 1
    imageView.startAnimating()
}

 DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
                if self.game.correctValue == self.game.rightDiamondValue {
                    self.animate(imageView: self.rightGlass, images: self.shatterImages)
                        self.updateLabel()
                    } else {
                        self.gameOver()
                    }
            }

标签: swiftxcodeuiimageview

解决方案


推荐阅读