【问题标题】:Modify CABasicAnimation whilst its rotating iPhone在旋转 iPhone 时修改 CABasicAnimation
【发布时间】:2012-05-11 13:57:15
【问题描述】:

我有一个使用 CABasicAnimation 旋转的 uiimage。当我获得指南针更新时,我会按时间偏移量更改/更新图像起点。

这很好用,但是当我从指南针获取更新并删除旧动画时,它会跳回到起点,然后再移动到新的起点位置。这会导致闪烁效果。是否可以同时删除和添加动画或以某种方式防止这种情况发生?

到目前为止我的代码如下。

[self.waveImage.layer RemoveAllAnimations];

CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
animation.fromValue = [NSNumber numberWithFloat:0.0];
animation.toValue = [NSNumber numberWithFloat:2.0 * M_PI];
animation.duration = 1.0;
animation.repeatCount = HUGE_VALF;    // Repeat forever           
animation.speed = 1.0/duration;
animation.timeOffset = startingPhase;
animation.fillMode = kCAFillModeForwards;

[self.waveImageView.layer addAnimation:animation forKey:@"transform.rotation.z"];

【问题讨论】:

    标签: iphone ios animation layer cabasicanimation


    【解决方案1】:

    【讨论】:

    • 感谢您的评论,但我在这里看不到任何可以帮助我的东西。因此发表了这篇文章。我尝试将其包装在 [CATransaction begin] 中; / 没有运气就提交
    【解决方案2】:

    试试这个。

    • 摆脱 fromValue。当您不指定 fromValue 时,它​​使用 动画的当前值

      删除时间阶段。您想从 开始。 timePhase 会导致它改变你的动画。

      不要使用重复计数。这将导致动画从 它从开始到结束,然后快速返回并重复。

      添加动画.removedOnCompletion = NO.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      相关资源
      最近更新 更多