我的应用程序UIKit存储大约100个(100x100) jpeg文件,这些文件应该用作“模式图像”。每个图像的平均大小有时类似于20~40 kb。
我也是cocos2d-x开发人员。在cocos环境中,我使用plist“绑定”每个图像,而不是通过plist对其进行切割。这是一个很好的性能和大小保护程序,但据我所知,这在UIKit上是不可能的。
所以我的问题是,是否有更好的方法来存储/拖动这些映像,以提高磁盘容量和性能,而不是像往常一样将文件拖放到XCode中并使用?。
发布于 2015-07-30 05:55:31
在iOS上,任何数量的映像都不是真正的问题,因为有一些高级缓存系统可以处理映像的重用。而且,iOS的渲染系统非常棒,所以您不必担心它。
虽然它当然有可能为精灵系统编程,但我不会建议你这么做。这种方法主要用于Web (因为每个图像都必须带有新的请求*注意HTTP/2不再正确),而且显然也用于游戏开发(因为绑定纹理调用越少,越好)。
还有一个很好的例子说明为什么不使用精灵--如果您正在开发Watch应用程序,并且您想做动画,您可以通过flipboard样式的图像(名为1.png -100.png的图像序列)来完成,而不是使用大型的图像地图集。虽然人们会猜测为什么他们会这样做(我猜是因为它在内部工作得有多好+蓝牙的吞吐量),但很明显,它也是苹果的首选,因此我们应该遵循。
对于iOS,有一些陷阱您应该知道:
UIColor.colorWithPatternImage()创建的背景图像应该谨慎使用,因为这种方法被认为是有问题的(这里的细节)现在,关于映像的异步加载,我建议您查看以下库:
它们都很棒,所以这确实是首选问题(我更喜欢Haneke ),但是它们允许您在不同的线程上下载图像,无论是从Web还是从您的包中下载。它们还为UIImageView提供了扩展,允许您使用一行函数轻松加载所有图像。
希望能帮上忙!
发布于 2015-07-30 14:12:44
如果这一点算上的话,iOS 9就会出现;)它被称为随需应变资源( On ),它允许你用苹果存储内容,并在需要的时候下载内容,等等。这对于游戏应用程序来说是很棒的,也是它们在WWDC中的一个例子。
看看这里:指南/指南
https://stackoverflow.com/questions/31539924
复制相似问题