swift - 如何以编程方式更改 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()
}
}
解决方案
推荐阅读
- angular - 我想显示来自 firestore 的数据,但我收到错误 Spread types may only be created from object types
- reactjs - 如何在 const 中插入另一个 CSS 并在 reactjs 中从另一个 const 调用
- behavior - 如何使用行为更改按钮背景?
- db2 - DB for z/OS 中的递归查询
- excel - 如何在不更改的情况下将 csv 表复制到 excel 文件中
- django - Django ArrayAgg - 过滤带注释的数组
- django - 使用 Jinja 返回一个组的总和
- amazon-web-services - AWS copilot 部署的服务不可访问?
- bash - 检查 openssl 会导致字典攻击
- python - pandas聚合函数的模棱两可的行为