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,然后执行操作