Iphone UILabel中实际可设置动画的是什么?

Iphone UILabel中实际可设置动画的是什么?,iphone,cocoa-touch,uikit,core-animation,Iphone,Cocoa Touch,Uikit,Core Animation,我正在尝试设置UILabel类的backgroundColor属性的动画,但到目前为止还没有成功。这里是我的代码片段 -(void) blink { UIColor* originalColor = lblDescription.backgroundColor; lblDescription.backgroundColor = [UIColor yellowColor]; [UIView beginAnimations:nil context:NULL]; [UIView se

我正在尝试设置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文档来证实这一说法。我想知道是否有人能解释这个问题

On,“表1-2可设置动画的属性”应该列出UIView的所有可设置动画的属性。它不包括背景色

但在UIView类引用中,backgroundColor属性下显示:

讨论
对该属性的更改可以设置动画。默认值为零

因此,我们不清楚为什么UILabel的背景色没有动画


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

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


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

问得好。大多数时候,我只是想知道它是否可以制作动画…试一下其他两种解决方法。这些应该在早期的操作系统版本中工作。@AbitobVisive CATextLayer没有垂直对齐功能(在iOS中),在其表面的顶部渲染文本(UILabel在中间渲染)。我要放弃:(@biofe:使用两个相互重叠的UILabel的解决方法很简单。你试过了吗?有重复的UILabel,但你只是将它们的alpha设置为反向动画,这有点烦人。@很明显这正是我下一步要做的。与此同时,我向苹果公司提出了这个毫无希望的错误问题。谢谢你的帮助lp.这里有一个更好的解决方法,仅使用原始UILabel本身: