我正在尝试将渲染的动画缓存到apple watch (这些动画是在运行时生成的)。我已经将每个动画的帧保存为JPEG @1x,压缩率为0.1。所有帧的总和小于1.2MB。我在开始缓存之前清除了缓存。然而,只有大约一半的动画被缓存。文档显示缓存为5MB。我做错了什么?
发布于 2015-05-06 05:03:31
如果您希望以编程方式(即不在编译时)将图像数据发送到手表,WKInterfaceDevice提供了两种方法:
addCachedImage:name:接受UIImage,将其编码为PNG图像数据,并将其传输到缓存。因此,如果您从JPEG数据创建UIImage,实际上是将JPEG数据解码为图像,然后在将其发送到缓存之前将其重新编码为PNG (从而消除了第一个place).addCachedImageWithData:name:中的JPEG编码的影响接受NSData并将未更改的数据直接传输到缓存。因此,如果您使用UIImageJpegRepresentation将图像编码为NSData,并将其传递给此方法,则在缓存中传输和存储的内容会更少。我对我的所有图像都使用这种技术,除非我需要PNG图像的好处;在这种情况下,我实际上使用UIImagePngRepresentation编码我自己的NSData,并使用这种方法发送它。出于调试目的,使用[[WKInterfaceDevice currentDevice] cachedImages]字典查找缓存图像数据的大小是很有帮助的。字典返回一个带有缓存条目大小(以字节为单位)的NSNumber。
发布于 2015-05-29 10:50:52
我刚刚发现,如果你使用这行代码:
[self.image setImageNamed:@"number"]您的镜像应该命名为:
number1.png
number2.png
number3.png
number4.png当我命名图像时,我遇到了类似的错误:
number001.png
number002.png
number003.png
number004.pnghttps://stackoverflow.com/questions/30062124
复制相似问题