CALAyer与CGLayer混淆:在后台操纵和保存图像

时间:2012-07-01 01:14:36

标签: ios ios5 calayer quartz-2d

我从网络中提取图像,并希望稍微操纵它们,例如使用CATransform3D添加透视图,以及将两个图像合成在一起。完成后,我想将文件保存在内存中,以便在需要时将其拉出(例如在tableview单元格中)。我设法从网络中提取图像,并通过制作CALayer来操纵它们。经过一些阅读后,我对如何正确地执行此操作感到困惑,因为这些图像在需要之前不显示,我显然希望在工作线程上完成工作,因此系统不会滞后。最好的程序是什么?

1 个答案:

答案 0 :(得分:0)

Apple建议您几乎不要尝试自己缓存图像,因为它们在内部缓存它们,并且可以保证即使在高内存压力下缓存也能正常运行。

您可以使用Apple的内部缓存通过setName:imageNamed:方法缓存图像。此外,您应该在缓存目录中将映像的本地副本保存到磁盘,这样如果缓存被清除,则无需再次下载。

因此,总而言之,使用imageNamed:,如果是nil,请检查磁盘缓存目录,如果是nil则下载映像。缓存CALayer会使内存变得非常脏,