Какао-анимация с использованием CATransition в одном представлении - PullRequest
1 голос
/ 13 сентября 2010

Я хочу использовать CATransition, чтобы обеспечить анимацию затухания между различными состояниями представления. Тем не менее, похоже, что это не работает с одним представлением (все найденные примеры используют CATransition для переключения между разными представлениями). Напротив, CABasicAnimation работает просто отлично.

Мой пример кода показывает, что я делаю. У меня есть пользовательское представление (TTView) с двумя свойствами, которые я хочу анимировать. Одним из них является цвет, анимированный с использованием CABasicAnimation (простая интерполяция). Другое - логическое состояние, и я хочу добиться эффекта затухания при его изменении. (Не обращайте внимания на тот факт, что пример использует его, чтобы просто изменить размер прямоугольника, это просто для простоты.)

Я что-то не так делаю, или CATransition просто не работает в одном представлении?

1 Ответ

0 голосов
/ 14 сентября 2010

Код немного велик, но вот наиболее важные части реализации TTView.Свойство scale является логическим значением, изменение которого я хочу анимировать с помощью перехода.

+ (id) defaultAnimationForKey: (NSString *)key
{
  if ([key isEqualToString: @"color"]) {
    return [CABasicAnimation animation];

  } else if ([key isEqualToString: @"scale"]) {
    return [CATransition animation];
  }

  return [super defaultAnimationForKey:key];
}

/* ... */

- (IBAction) toggleScale: (id)sender
{
  [[self animator] setScale: !self.scale];
}

Я только что заметил, что CATransition не является подклассом CAPropertyAnimation, так что, возможно, это моя настоящая проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...