我正在使用新的面向块的UIView动画方法来创建一个滑动和渐弱的幻灯片,该幻灯片的灵感来自于Flickr应用程序主屏幕上显示的幻灯片。这一切都很顺利,我不再受到障碍的威胁。
我正在使用它的位于我的应用程序的页面,该页面位于UINavigationController控件内。一切都很好,据我所知,它的工作正常。
问题是,我在那里留下了一行NSLog输出,当我的幻灯片放置的视图不是堆栈中的顶视图控制器时,那个吸盘只输出了大量的NSLog输出。在正常情况下,该东西每8.5秒运行一次(当加载新幻灯片时),但是当它不可见时,它就像每秒16左右。当它的视图控制器回到表面时再次恢复正常,好像什么也没发生过一样。如果我不是在控制台上与自己交谈,我永远不会知道这种情况正在发生。
我的动画正处于一个很大的循环中。在我不注意的时候,我真的不介意他们是否正在我身下搅拌。你认为这是一个问题吗?我担心的是它正在吃不必要的周期,但即使对我的3G测试也没有任何实际影响。思考?是否有一些通用的方法来暂停自定义UIView动画?
答案 0 :(得分:0)
我很想知道您的指标是什么,以确定您的设备没有“真正的影响”。说感觉没有受到影响是不合理的。我认为这是合法的,但我会担心你为什么会这样。您是否进行了任何分析以查看处理器热点的位置?这样做可能是明智的。
可能有更好的方法来做你正在做的事情。你说你的“动画是一个很大的循环。”我不确定你的意思,但一般来说你根本不需要使用循环除了将动画添加到图层数组或类似的东西。你能澄清一下你的意思吗?如果您使用某些动画代码更新答案,我们可以尝试帮助您找出问题所在。
即使没有明显的明显的可用性影响,我个人也不会感到很放心,因为即使没有明显的可用性影响,也无法解决具有该问题的应用程序。
最诚挚的问候。
答案 1 :(得分:0)
我通过向动画UIView子类添加-(void)pause
和-(void)resume
方法解决了这个问题。在暂停时,它会设置一个标志,该标志会中断动画循环并隐藏有关进程中的位置的一些信息。在恢复时它会撤消该标志,重置它所隐藏的东西的状态,然后回到动画方法的循环中。作品!
答案 2 :(得分:0)
我真的很想看看你的东西是如何运作的。我有同样的问题,不同的旋转。
我的游戏使用UIViews在屏幕上移动物体,我已经解决了很久以前暂停的问题(比如6个月前)。在iOS 4中,我认为当应用程序被置于后台时暂停游戏(基本上是从我的委托中的applicationWillResignActive调用暂停)这是一件简单的事情,而且工作正常。但是现在当我恢复应用程序时,UIAnimations只是恢复而没有应用程序取消暂停,所以游戏在暂停时播放...巨大的问题。
但是,我使用相同的方法暂停我的游戏,我通过从表示层获取信息,存储信息,然后通过从剩余时间作为持续时间从该点创建另一个动画来暂停动画。不知道为什么这不起作用,你是如何暂停和恢复的?