当被调用两次时,UIView animateWithDuration不能正常工作

时间:2013-07-11 16:24:25

标签: ios cocoa-touch uitextfield

我在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];

第一次工作,它显示红色背景,然后切换回白色。但是在第二次通话时它没有做任何事情。

1 个答案:

答案 0 :(得分:1)

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

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

这应该给你相同的外观。