【问题标题】:How do I animate changing the border colour of a UITextField?如何动画更改 UITextField 的边框颜色?
【发布时间】:2011-11-29 13:11:04
【问题描述】:

我从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 的默认值?)

【问题讨论】:

    标签: ios ios5 uitextfield


    【解决方案1】:

    我相信CALayer 属性在UIView 动画块中是不可动画的。您需要设置 CABasicAnimation 并将该动画添加到图层中。

    【讨论】:

    • 哦,当然。我从 UIView 动画块开始,因为我试图直接为 UITextField 的背景颜色设置动画,但尽管文档表明它应该这样做,但这根本行不通。
    • ...但是,经过编辑,我也无法让隐式 CABasicAnimation 工作。
    • 使用显式动画 (CABasicAnimation) 对我来说效果很好。
    猜你喜欢
    • 2010-12-24
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2020-01-12
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多