CALayer presentationLayer很慢并且落后于时间

时间:2012-03-20 07:36:58

标签: iphone core-animation calayer

情景:

我有一堆从0列移到7的移动块。当用户点击时,块停止。

这是我的代码:

- (IBAction)userTap:(id)sender
{
    [block1.layer removeAllAnimations];
    [block2.layer removeAllAnimations];
    [block3.layer removeAllAnimations];
}

我现在得到表示层并提取我的基本信息:

CALayer *player = [block1.layer presentationLayer];
float currentTranslation = [[pLayer valueForKeyPath:@"transform.translation.x"] floatValue];
// Set position of non-moving blocks here

currentTranslation是正确的,我也用时间验证了它。然而,似乎动画的运行速度比我的presentationLayer快,所以我看到一个混蛋就在我点击时发生。

这里发生了什么,我该如何纠正?

1 个答案:

答案 0 :(得分:0)

您是否正在使用CADisplayLink将动画定时到运行循环并使用CALayer's覆盖CATransaction隐式动画?

This blog post covers some of it if not.