2011-11-29 57 views
2

我从this疑问,以下为动画我的UITextField边框的颜色变化推断:如何动画更改UITextField的边框颜色?

 [UIView animateWithDuration:5.0f animations:^() { 
      myUITextField.layer.borderColor = [UIColor greenColor].CGColor; 
     }]; 

但是这不,边框瞬间改变颜色。这显然是我做错了吗?

更新:好了,所以尝试以下implicit animation

 [CATransaction begin]; 
     [CATransaction setValue:[NSNumber numberWithFloat:5.0f] forKey:kCATransactionAnimationDuration]; 
      myUITextField.layer.borderColor = [UIColor greenColor].CGColor; 
     [CATransaction commit]; 

这还不动画或者,相同的效果:它改变颜色瞬间(顺便说一句,这里是为kCATransactionAnimationDuration的默认层.borderColor记录在案?)

回答

6

我认为CALayer属性不是动画块中的动画。您需要设置一个CABasicAnimation并将该动画添加到该图层。

+0

哦,当然。我开始使用UIView动画块,因为我试图直接对UITextField的背景颜色进行动画制作,但尽管文档指出了它应该这样做,但这根本行不通。 –

+0

...但是,作为编辑,我不能让一个隐式的CABasicAnimation工作。 –

+0

使用显式动画('CABasicAnimation')对我来说工作得很好。 –