当repeatCount为huge_val时,如何知道动画(CAKeyFrameAnimation)完成的迭代次数?

时间:2013-02-01 04:27:15

标签: iphone cakeyframeanimation

我正在开展赛车比赛,每辆赛车都在路上行驶。由于比赛是基于时间的,我将repeatCount设置为bug值。现在的问题是我无法确定比赛结束时完成了多少圈(换句话说,动画重复了多少次)。我尝试将CGIntersectRect用于汽车的车架,并在计时器功能中使用一些从不准确的起点。

2 个答案:

答案 0 :(得分:0)

我认为您可以使用Animation Delegates

  

CAAnimation类提供了通知委托对象的方法   当动画开始和停止时。

     

如果动画指定了委托,则会收到   animationDidStart:消息,传递开始的动画实例。   当动画停止时,委托收到一个   animationDidStop:finished:message,传递动画实例   停止并指示动画是否完成的布尔值   它的持续时间成功或手动停止。

animationDidStart:中你可以放置计数器来测量迭代。每次调用递增此计数器都会给你迭代次数

答案 1 :(得分:0)

我可以自己解决,也许不是最好的答案。

我在起点处使用CaLayer并检查汽车和此图层的帧是否也在计时器中相交。问题仍然存在,因为它会多次交叉,给出图像和定时器频率的宽度和高度。然后我用一面旗子在它交叉时只计算一圈。

-Thanks!