我从this问题推断出以下内容应该为我的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];
这也没有动画,效果相同:它会立即改变颜色(另外,对于layer.borderColor记录的kCATransactionAnimationDuration的默认设置在哪里?)
答案 0 :(得分:6)
我认为CALayer
属性在UIView
动画块中无法生成动画。您需要设置CABasicAnimation
并将该动画添加到图层中。