尝试通过以下代码使用动画制作加载器:
var images: [UIImage] = []
for i in 1...10
{
let strImageName : String = "loader\(i).png"
images.append(UIImage(named: strImageName)!)
}
self.loader.animationImages = images
self.loader.animationDuration = 1.0
self.loader.startAnimating()
我收到此错误致命错误:“在解压缩可选值时意外发现nil,然后我的应用程序崩溃了”,崩溃后来自调试器的这些信息:
images = ([UImage]) 0 values
strImageName = (String) “loader1.png”
我不明白我的代码出了什么问题。谁能帮我吗?
发生的情况是UIImage
的初始化程序失败,并且找不到要创建的映像,因此强制展开崩溃。您必须有条件地打开包装(即if let
):
var images: [UIImage] = []
for i in 1...10 {
let strImageName = "loader\(i).png"
if let image = UIImage(named: strImageName) {
images.append(image)
} else {
print("Image '\(strImageName)' does not exist!")
}
}
self.loader.animationImages = images
self.loader.animationDuration = 1.0
self.loader.startAnimating()
您也可以使用map
/在一行中完成此操作flatMap
:
let images = (1...10).map { "loader\($0).png" }.map { UIImage(named: $0) }.flatMap { $0 }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句