图像阵列导致内存问题
Image Array Causing memory Issue
目前正在创建一个基本的图像幻灯片应用程序,为此我创建了一个 UIImage 数组并使用以下代码调用它们。
let imageNames = (0...50).map
{
"\([=10=]).JPG"
}
let image = UIImage(named: imageNames[0])
imageView.animationImages = image
imageView.animationDuration = 50
imageView.startAnimating()
想知道是否有人能够提供一些建议。
您需要在数组中添加图像名称而不是 UIImage 。
let images: [String] = [
"0.JPG",
"1.JPG")!]
从数组的字符串中获取图像
let image = UIImage(named: images[0])
问题不在于图像在磁盘上占用了多少内存,而在于处理屏幕上所有像素所需的内存。在使用图像之前,您实际上并不需要存储它们。一张小于 1MB 的图片加载速度非常快。
相反,您只需要保留图像的路径,并且仅当您到达显示图像的代码时,然后加载并显示它。
因此,结合 Alexander 和 KKRocks 的中肯答案:
在 class 的顶部,定义文件名数组:
let imageNames = (0...55).map { "\([=10=]).JPG" }
您显示图片的位置:
if let image = UIImage(named: images[0]) {
... the code that is blowing up ...
}
如果您不确定如何保存和检索文件,请参阅我最近就该主题给出的回答:
目前正在创建一个基本的图像幻灯片应用程序,为此我创建了一个 UIImage 数组并使用以下代码调用它们。
let imageNames = (0...50).map
{
"\([=10=]).JPG"
}
let image = UIImage(named: imageNames[0])
imageView.animationImages = image
imageView.animationDuration = 50
imageView.startAnimating()
想知道是否有人能够提供一些建议。
您需要在数组中添加图像名称而不是 UIImage 。
let images: [String] = [
"0.JPG",
"1.JPG")!]
从数组的字符串中获取图像
let image = UIImage(named: images[0])
问题不在于图像在磁盘上占用了多少内存,而在于处理屏幕上所有像素所需的内存。在使用图像之前,您实际上并不需要存储它们。一张小于 1MB 的图片加载速度非常快。
相反,您只需要保留图像的路径,并且仅当您到达显示图像的代码时,然后加载并显示它。
因此,结合 Alexander 和 KKRocks 的中肯答案:
在 class 的顶部,定义文件名数组:
let imageNames = (0...55).map { "\([=10=]).JPG" }
您显示图片的位置:
if let image = UIImage(named: images[0]) {
... the code that is blowing up ...
}
如果您不确定如何保存和检索文件,请参阅我最近就该主题给出的回答: