gpt4 book ai didi

iphone - 使用 CABasicAnimation 旋转 CALayer 后,图层会跳回其未旋转的位置

转载 作者:行者123 更新时间:2023-12-03 18:13:27 25 4
gpt4 key购买 nike

我正在尝试创造一枚掉落的硬币。硬币图像是一个 CALayer,上面有 2 个 CABasicAnimations - 一个是下落动画,一个是旋转动画。当坠落动画结束时,它会停留在那里。不过,旋转动画应该是随机的,并且每次都会以不同的角度结束,但它只是弹回到原始的 CALAyer 图像。

我希望它保持在完成动画时的角度。是否可以?我该怎么做?

代码:

//Moving down animation:
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
anim.duration = 1;
anim.autoreverses = NO;
anim.removedOnCompletion = YES;

anim.fromValue = [NSNumber numberWithInt: -80 - row_height * (8 - _col)];
anim.toValue = [NSNumber numberWithInt: 0];

//Rotation Animation:
CABasicAnimation *rota = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rota.duration = 4;
rota.autoreverses = NO;
rota.removedOnCompletion = NO;
rota.fromValue = [NSNumber numberWithFloat: 0];
rota.toValue = [NSNumber numberWithFloat: 2.5 * 3.15 ];
[cl addAnimation: rota forKey: @"rotation"];
[cl addAnimation: anim forKey: @"animateFalling"];

最佳答案

您是否将旋转动画的removedOnCompletion属性设置为NO,例如,

rota.removedOnCompletion = NO;

这应该将表示层保留在动画完成时的位置。默认值为 YES,这将恢复到模型值,即您描述的行为。

还应该设置 fillMode,即

rota.fillMode = kCAFillModeForwards;

关于iphone - 使用 CABasicAnimation 旋转 CALayer 后,图层会跳回其未旋转的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376753/

25 4 0