iPhone UIView Animation Duration работает только мгновенно - PullRequest
2 голосов
/ 09 августа 2010

Этот код выполняется методом touchesended для подкласса uiview, однако он не анимируется, он просто мгновенно меняет цвет фона.Что не так?

    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 Ответ

1 голос
/ 10 июня 2011

Метод [UIView commitAnimations] не блокируется - поэтому, если вы вызовете его, он начнет анимацию, но после этого сразу выполнит код. Если у вас есть какой-либо код под ним, который меняет цвет фона, он нарушит вашу анимацию.

Если это не сработает, попробуйте анимировать другое свойство - я знаю, что в верхней части моего положения головы & alpha анимируемо, но я не уверен в цвете. (Альфа - это просто значение float, а центр - это просто CGPoint, оба из которых являются примитивами, но UIColor является ссылочным типом, и UIView может не знать, как анимировать указатель.)

...