gpt4 book ai didi

iphone - iOS Image View 性能提升建议

转载 作者:行者123 更新时间:2023-12-01 18:02:04 25 4
gpt4 key购买 nike

我的应用程序截取屏幕截图。我有一个带有 ScrollView 的主屏幕,可让您循环浏览这些快照。问题是,我拥有的快照越多, View 运行的速度就越慢。在事情变得严重滞后之前,我可以在 ScrollView 中获得大约 15 个快照。我显示的图像只有实际屏幕截图的 1/3 大小。每个屏幕截图都是 ScrollView 上的 UIImageView。关于提高性能的任何想法?

最佳答案

你能做的最好的事情就是做延迟加载。
仅加载当时在该 View 上可见的图像。
滚动后,旧图像将被释放并加载新图像。

加载图片的两种方式:

[UIImage imageNamed:fullFileName] // caches the image

或者:
NSString *fileLocation = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
NSData *imageData = [NSData dataWithContentsOfFile:fileLocation];
[UIImage imageWithData:imageData];

或者,最后:

[UIImage imageWithContentsOfFile:path] // does not cache the image

哪种解决方案最好取决于您对图像的处理方式。 imageNamed:方法确实缓存了图像,但在许多情况下,这将有助于内存使用。例如,如果您加载 10 次图像以在表格 View 中与一些文本一起显示, UIImage只会在内存中保留该图像的单个表示,而不是分配 10 个单独的对象。另一方面,如果您有一个非常大的图像并且您没有重复使用它,您可能希望从数据对象加载图像以确保在完成后将其从内存中删除。

如果您没有任何大图像,我不会担心缓存,只要您使用延迟加载。除非您发现问题,否则我会选择更少的代码行而不是可忽略的内存改进。

关于iphone - iOS Image View 性能提升建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130982/

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