【问题标题】:how to both rotate and change colors in UIView animateKeyFramesWithDuration如何在 UIView animateKeyFramesWithDuration 中旋转和更改颜色
【发布时间】:2015-03-12 20:18:48
【问题描述】:

我有一个旋转正确的微调器,但我也想让它在旋转时改变彩虹色。如何在关键帧动画中将旋转动画与颜色变化动画结合起来?我正在使用 PaintCode 将资产渲染为矢量图,因此我可以绘制任何颜色的微调器。

   func animate(){
        UIView.animateKeyframesWithDuration(2.0, delay: 0, options:.CalculationModeLinear | .Repeat, animations: { () -> Void in
            UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.333333, animations: { () -> Void in
                let rotation = (CGFloat) (2.0/3.0 * M_PI)
                self.spinner.transform = CGAffineTransformMakeRotation(rotation)
            })
            UIView.addKeyframeWithRelativeStartTime(0.333333, relativeDuration: 0.333333, animations: { () -> Void in
                let rotation = (CGFloat) (4.0/3.0 * M_PI)
                self.spinner.transform = CGAffineTransformMakeRotation(rotation)
            })
            UIView.addKeyframeWithRelativeStartTime(0.666667, relativeDuration: 0.333333, animations: { () -> Void in
                let rotation = (CGFloat) (0)
                self.spinner.transform = CGAffineTransformMakeRotation(rotation)
            })

        }) { (finished) -> Void in
            //complete
        }
    }

【问题讨论】:

    标签: swift uiview uiviewanimation uiactivityindicatorview


    【解决方案1】:

    尝试更改微调器的 tintColor。如果您想实现彻底“彩虹色”的更改,我认为 UIView.animate- 不会达到目的。我想使用基于计时器的动画会是一个更好的解决方案,因为您必须添加很多 UIView.addKeyframeWithRelativeStartTime 调用。你可能不知道确切的数字。此外,如果您想添加一种新颜色,您必须重新计算时间并添加一个新调用,这是......让我们说这不是一种编码的好方法:) 您能给我们举一个与您想要达到的目标类似的例子吗?

    【讨论】:

    • 为了更简单,如果我们使用相同的动画帧偏移,但只是在动画中添加颜色转换,使其从蓝色 - 红色 - 黄色变为更简单
    猜你喜欢
    • 2019-03-13
    • 2013-01-31
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多