使用核心动画创建图像序列动画

3
我目前正在使用一个UIImageView和一个包含约20个图像的数组来创建一个小的循环动画序列(大小为320x480)。虽然对于20-30张图像来说这样做还可以,但是如果超过这个数量,应用程序就会在iPhone上崩溃。目前我的测试应用程序中没有其他内容,因此我知道问题只出在animationImages序列上。
有人是否遇到过通过核心动画完成此类事情的示例,以实现更好的性能并允许使用更多的图像?从我所读到的内容来看,似乎可以设置大量的CALayer,并在每个图层中放置一张图像,然后通过按顺序开启和关闭图层来创建动画。这是一个好方法吗?
或者,作为替代方案,由于我基本上想要一个循环电影的效果,是否有一种方法可以使用moviecontroller来实现该效果,而不会在开始和结束时淡入淡出?
非常感谢任何指点。

https://dev59.com/313Ua4cB1Zd3GeqP-C-B#17129053 - MoDJ
2个回答

3

这可能是一个简单的内存问题。假设为8bpp(如果它们是更高颜色,显然会更多),20张320x480的图像大约需要3MB的内存。您可以尝试根据需要加载和卸载(当然,这意味着您需要自己制作动画,而不是使用UIImageView)。


谢谢Ben(和Will)-我已经设置了按需加载,虽然性能不如我所希望的那样好,但它可以处理大量图像(在我的测试中为170张)。我目前正在从应用程序包中加载,因此可能会尝试复制到本地文档目录并查看是否有所帮助。非常感谢,Craig - Joel Spolsky

0

听起来像是一个简单的内存问题。

你可以一次加载一到两个帧,或者实际播放电影。


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