UIView animationWithDuration 在调用两次时不起作用

Posted

技术标签:

【中文标题】UIView animationWithDuration 在调用两次时不起作用【英文标题】:UIView animationWithDuration not working second when called twice 【发布时间】:2013-07-11 16:24:25 【问题描述】:

我在 UITextField 上创建了一个类别,它允许在红色和白色之间进行动画处理,如下所示:

@implementation UITextField (Additions)

-(void) flash

    [UIView animateWithDuration:2.0 animations:^

        [self setBackgroundColor:[UIColor redColor]];

     completion:^(BOOL finished) 

        [self setBackgroundColor:[UIColor whiteColor]];
    ];



@end

我这样称呼它:

[self.paymentTextField flash];

第一次工作时,它显示红色背景,然后切换回白色。但是在第二次调用时它什么也没做。

【问题讨论】:

看起来并不像看起来那么容易:***.com/questions/3944416/… 您可以通过在文本字段顶部创建一个红色 UIView 并为其 alpha 设置动画来解决问题。 【参考方案1】:

我不确定为什么这不起作用。我试过了,得到了同样的东西。然而,由于颜色并没有真正的动画,你可以这样做:

self.backgroundColor = [UIColor redColor];
[self performSelector:@selector(setBackgroundColor:) withObject:[UIColor whiteColor] afterDelay:2];

这应该给你同样的外观。

【讨论】:

以上是关于UIView animationWithDuration 在调用两次时不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 UIView2 上方显示 UIView1,但在 UIView1 上方显示 UIView2 输入方式

统计从多个 UIView 中随机抽出的 UIView 数量,即:从 9 个 UIView 中随机抽出 5 个 UIView,然后执行操作

UIView 类别 - 自定义方法不返回 UIView

IOS将UIVIew中的UIImageView扁平化为单个UIView [重复]

UIView - 啥覆盖将允许更新 UIView 框架

UIView 中的 UIView 问题