CABasicAnimation には、ID を期待する toValue プロパティがあります。しかし、Quartz Core は UIColor では動作しません。代わりに CGColor 構造体が必要です。CABasicAnimation に色を指定するにはどうすればよいですか?
質問する
7126 次
1 に答える
26
を提供し、CGColor
それを に向けて型キャストするだけid
です。
UIColor *fromColor = [UIColor redColor];
UIColor *toColor = [UIColor yellowColor];
CABasicAnimation *colorAnimation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
colorAnimation.duration = 1.0;
colorAnimation.fromValue = (id)fromColor.CGColor;
colorAnimation.toValue = (id)toColor.CGColor;
この例では、背景色を 1 秒間で赤から黄色にフェードします。
Apple のサンプル コードから直接取得した別の例:
CAKeyframeAnimation* colorAnim = [CAKeyframeAnimation animationWithKeyPath:@"borderColor"];
NSArray* colorValues = [NSArray arrayWithObjects:(id)[UIColor greenColor].CGColor,
(id)[UIColor redColor].CGColor, (id)[UIColor blueColor].CGColor, nil];
colorAnim.values = colorValues;
colorAnim.calculationMode = kCAAnimationPaced;
于 2012-08-18T19:34:17.963 に答える