iPhone: переход между представлениями с помощью Core Animation - PullRequest
1 голос
/ 21 мая 2009

На Mac лучший способ для простого перехода представлений с плавным переходом (без какой-либо пользовательской синхронизации ключевых кадров) состоит в том, чтобы сделать что-то вроде следующего отрывка:

[[self animator] replaceSubview:aView with:bView];

К сожалению, свойство аниматора недоступно на iPhone. Какой лучший способ сделать это на iPhone? Настраивает ли альфа-каналы каждый вид? Пример кода будет отлично.

Спасибо.

1 Ответ

0 голосов
/ 21 мая 2009

Основной способ анимировать представления на iphone - использовать вызовы UIView beginAnimations и commitAnimations. Они позволяют изменять анимируемые свойства представления и анимировать эти изменения.

Например, у меня есть пользовательское представление, которое скрыто и показано с использованием этого подхода:

- (void) showAView:(CustomAView *)aView
{
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:0.5];    
  aView.frame = CGRectMake(0.0f, 110.0f , aView.frame.size.width, aView.frame.size.height);
  [UIView commitAnimations];  
}

- (void) hideAView:(CustomAView *)aView
{
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:0.5];  
  aView.frame = CGRectMake(0.0f, self.view.frame.size.height, aView.frame.size.width, aView.frame.size.height);    
  [UIView commitAnimations];
}

Оборачивая изменение свойства фрейма в UIView beginAnimations / commitAnimations, к изменению применяется стандартная анимация.

Вы можете добавить дополнительные свойства к анимации, используя методы класса анимации UIView, например.

[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...