iPhone UIView动画持续时间仅适用于即时

时间:2010-08-09 00:47:57

标签: iphone uiview uianimation

此代码正在子类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];

1 个答案:

答案 0 :(得分:1)

[UIView commitAnimations]方法没有阻塞 - 所以如果你调用它,它将开始动画,但它会在此点之后立即执行代码。如果你下面有任何代码可以改变背景颜色,它将会破坏你的动画。

如果这不起作用,尝试动画一个不同的属性 - 我知道我的头顶位置&amp; alpha是可动画的,但我不确定Color。 (Alpha只是float值,中心只是CGPoint,两者都是基元,但UIColor是引用类型,UIView可能不知道如何设置指针动画。 )