【发布时间】:2012-07-25 05:17:50
【问题描述】:
几天来,我一直在努力寻找最有效/最高效的解决方案,将图像数组加载到 .animationImages 属性并能够即时更改该数组。这是场景: - 我有一个 UIImageView - 根据用户输入(手机移动、陀螺仪),我将加载特定的图像数组以进行动画处理。 - 在用户输入(触摸)时播放加载的动画。
现在,图像数组使用“NSThread detachNewThreadSelector”加载到不同的线程上,该线程使用 initWithData 从 gyroHandler 上运行的块调用(仅在某些情况下)。其他启动方法完全失败。
现在的问题是,当我第一次触摸(因为当前动画已加载)并触发动画时,整个事情都会冻结。一秒钟,然后播放动画。如果我再次触摸,它会成功播放动画,没有延迟/冻结。
现在我在某处阅读以在后台制作动画...我尝试使用:
[imgAnimationKey performSelectorInBackground:@selector(startAnimating) withObject:nil];
但结果是一样的。
我的数组有 19 张图像,而且很可能总是相同。 问题是我可能有更多 5+ 可以播放的动画,这就是我没有多个 UIImageViews 的原因。
有人知道预加载图像并避免首次播放延迟的方法吗?或者我可以让动画在不同的线程中运行并避免这种效果(我可能做错了)?
谢谢!
【问题讨论】:
-
我降低了图像质量。它有所改善,但仍有一些延迟。
标签: ios animation uiimageview delay preload