2011-05-06 46 views
17

最近,我一直在试图找到一种方法来通过GDB分析动画(除了好奇以外没有其他好处)。据我所知,CoreAnimation在单独的线程中运行它的动画。但是,在通过GDB暂停所有活动线程后,我的动画(具体来说,UIImageView使用的CAKeyFrameAnimation)仍在运行。CoreAnimation的主题

这使我相信2的事情正在发生:

1)我们无法得知它的线程(S)无论出于何种原因。

2.)我错过了非常明显的东西。

对这个问题的任何反馈非常感谢。谢谢。

+0

+1好奇!伟大的询问。 – 2011-05-06 23:12:12

+0

也许这不是你想要的,但是如果你想在动画的时候知道动画的任何值,我想你可以使用'CALayer'的'presentationLayer'属性。 – nacho4d 2011-05-06 23:20:14

+0

非常有趣,你是隐式还是明确地指定动画? – 2011-05-13 16:59:57

回答

6

您的实际动画已交给SpringBoard进程。这就是使用调试器暂停进程中的所有线程时不会停止的原因。通过使用VM Watcher工具查看创建动画时分配的共享虚拟机区域,您可以看到更多证据。在这方面,SpringBoard的功能有点像OS X上的窗口服务器。