根据动画期间的更改干扰某些UI属性

时间:2015-02-05 05:17:37

标签: ios animation

我的问题是,我想构建一个缓出动画,例如,我想在缓出模式下将UIView从1点移动到b点1秒。另一方面,我想在UIView基础上在动画期间的直接位置设置一些特定的背景颜色。

是否可以使用Core Animation?或者除了使用计时器之外还有其他方法吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

如果要连续更改背景颜色 ,我相信你可以使用相同曲线的CABasicAnimation,因为backgroundColor是一个可动画的属性。

像这样的代码:

CABasicAnimation *changeColor =
   [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
changeColor.fromValue = (id)[UIColor orangeColor].CGColor;
changeColor.toValue   = (id)[UIColor blueColor].CGColor;
changeColor.duration  = myMovingAnimationTime;
changeColor.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

[self.myLayer addAnimation:changeColor
                   forKey:@"Change color"];

如果你只是改变特定位置的颜色,这意味着改变颜色离散,我建议你设置一个每1/60秒触发的计时器,在计时器回调中,你这样做:

CALayer *presentationLayer = [[myView layer] presentationLayer];
//set color according to presentationLayer.frame
相关问题