我的问题是,我想构建一个缓出动画,例如,我想在缓出模式下将UIView从1点移动到b点1秒。另一方面,我想在UIView基础上在动画期间的直接位置设置一些特定的背景颜色。
是否可以使用Core Animation?或者除了使用计时器之外还有其他方法吗?
谢谢,
答案 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