此代码正在子类uiview的touchesended方法中执行,但它没有动画,只是立即改变背景颜色。有什么问题?
self.backgroundColor = [UIColor blackColor];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:20];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
if (score < .40) {
self.backgroundColor = [UIColor redColor];
} else {
self.backgroundColor = [UIColor greenColor];
}
[UIView commitAnimations];
答案 0 :(得分:1)
[UIView commitAnimations]
方法没有阻塞 - 所以如果你调用它,它将开始动画,但它会在此点之后立即执行代码。如果你下面有任何代码可以改变背景颜色,它将会破坏你的动画。
如果这不起作用,尝试动画一个不同的属性 - 我知道我的头顶位置&amp; alpha
是可动画的,但我不确定Color。 (Alpha只是float
值,中心只是CGPoint
,两者都是基元,但UIColor
是引用类型,UIView可能不知道如何设置指针动画。 )