Не все оживляемо.Только части UIKit есть.Так что, если вы хотите спросить, можно ли анимировать любой подкласс NSObject
, то нет, они не могут.Если вы хотите спросить, можно ли анимировать подклассы UIView
, тогда ответ будет положительным.Они также могут быть разными подклассами.Хотя это возможно, это не значит, что оно даст нам правильные результаты.Они могут в конечном итоге выглядеть довольно странно.Вы можете не захотеть этого делать.
Слои тоже можно анимировать.
Однако все зависит от того, что вы подразумеваете под классами.
Анимация для нового контроллера представления
Скажем, вы хотите изменить способ переключения между контроллерами представления, вы можете использовать transitionWithView:duration:..
метод класса UIView
.Например,
SecondViewController * viewController = [[[SecondViewController alloc] initWithNibName:nil bundle:nil] autorelease];
[UIView transitionWithView:self.view.window
duration:1.0f
options:UIViewAnimationOptionTransitionCurlUp
animations:^{
[self.navigationController pushViewController:viewController animated:NO];
}
completion:NULL];
При нажатии нового контроллера представления будет использоваться переход в режим скручивания.
Для версий iOS старше 4.0
Так как они не поддерживают API-интерфейсы блочной анимации, вам придется это сделать,
[UIView beginAnimations:@"Curl up" context:NULL];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.window cache:YES];
[self.navigationController pushViewController:viewController animated:NO];
[UIView commitAnimations];