生成CATiledLayer的动态瓦片

8
我看过WDC2010会议的第104场关于使用滚动视图和CATiledLayers的演讲,非常酷。但是我不确定瓦片图像的生成方式。示例中已经创建了青蛙瓦片图片。但如果我有一个照片应用程序,我需要自己创建瓦片,我不确定最好的方法是什么。
最简单的方法是在拍摄并存储照片后,进行一些图像处理并创建所有可能需要的瓦片。但这意味着对于每张照片,我都要存储更多的文件并使用更多的文件空间。
在我需要照片之前,将瓦片创建到一个临时目录中。当我完成查看部分后,可以删除该临时目录。至少只有在查看照片时才使用额外的文件空间。但我会担心加载图像以创建瓦片是否会引入用户可感知的延迟。
1个回答

1

您不需要保存平铺图像。基本上,您将根据正在显示的矩形创建UIImage/CGImage。

我在这里做了类似的事情,它运行得非常好,好处是它在内存方面非常高效。我根据正在显示的矩形动态生成CGImage(从大图像中获取小平铺),并且TiledLayer在转储矩形时将其从内存中删除。我从未将CGImage保存到文件中。

这种方法的缺点是它会引入渲染延迟...对于iPhone 3g上的游戏来说不太好。


你有生成CGImage从UIImage的一部分的示例代码吗?问题似乎是您必须将整个UIImage加载到内存中,而多个瓷砖图像可以帮助解决这个问题。谢谢! - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接