【问题标题】:CABasicAnimation animates but the views frame is not persistentCABasicAnimation 动画但视图框架不是持久的
【发布时间】:2014-02-10 01:36:35
【问题描述】:

我今天一直在玩 CABasicAnimation 和 CAAnimationGroup,我已经爱上了它。我有几个基本动画正在发生,其中圆形缩小并缩小为圆角方形,就像 iOS 7 中的“语音备忘录”应用程序一样。

下面是它的代码。

CABasicAnimation *corner = [CABasicAnimation animationWithKeyPath:@"cornerRadius"];
corner.timingFunction = [CAMediaTimingFunction     functionWithName:kCAMediaTimingFunctionLinear];
corner.fromValue = [NSNumber numberWithFloat:recordingShape.layer.cornerRadius];
corner.toValue = [NSNumber numberWithFloat:30.0f];
corner.duration = 1.0;


//shrinking - scaling
CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
shrink.toValue = [NSNumber numberWithDouble:0.5];
shrink.duration = 0.5;


// Two animations concurrently so set up CAAnimationGroup
CAAnimationGroup *group = [CAAnimationGroup animation];
[group setDuration:0.5];
[group setAnimations:[NSArray arrayWithObjects:shrink, corner, nil]];

// Animate the layer
[[recordingShape layer] addAnimation:group forKey:@"bounceAndFade"];

动画按预期很好地发生了,但是在动画之后它又回到原来的圆形状态,谁能指导我如何保持图层的框架?

谢谢。

【问题讨论】:

    标签: cabasicanimation caanimation


    【解决方案1】:

    我不知道你可以为 CAAnimationGroup 组设置一个委托,因此我在调用 animationDidStop 时更改了实际的cornerRadius 和变换。

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多