UILabel的实际动画是什么?

时间:2010-10-25 18:42:31

标签: iphone cocoa-touch uikit core-animation

我正试图为UILabel类的backgroundColor属性设置动画并且到目前为止都没有成功。这是我的代码片段

-(void) blink {
  UIColor* originalColor = lblDescription.backgroundColor;
  lblDescription.backgroundColor = [UIColor yellowColor];

  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:1.0];
  lblDescription.backgroundColor = originalColor;
  [UIView commitAnimations];
}
//this code works if lblDescription is UIView and does not if UILabel

我发现一些声称某些UILabel属性不具有动画效果,但我无法通过阅读Apple文档来证实这一说法。我想知道是否有人可以解释这个问题。

2 个答案:

答案 0 :(得分:4)

this page from the View Programming Guide For iOS上,“表1-2可动画属性”应该列出UIViews的所有可动画属性。它不包括backgroundColor。

但是在UIView类引用中,在backgroundColor属性下它表示:

  

<强>讨论
  可以对此属性的更改进行动画处理。默认值为nil。

所以不清楚为什么UILabel的backgroundColor没有动画。

我过去使用的解决方法是使用CATextLayer而不是UILabel。

答案 1 :(得分:0)

如果您想为标签的颜色(包括背景)设置动画,您可以执行以下操作:

https://stackoverflow.com/a/20892927/189924

这不涉及图层或使用多个视图。