情景:
我有一堆从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快,所以我看到一个混蛋就在我点击时发生。
这里发生了什么,我该如何纠正?
答案 0 :(得分:0)
您是否正在使用CADisplayLink
将动画定时到运行循环并使用CALayer's
覆盖CATransaction
隐式动画?