Я пытался добавить анимацию к viewDidLoad и viewDidAppear, но это не работает:
- (void)viewDidAppear:(BOOL)animated{
[UIView beginAnimations:@"transition" context:NULL];
[UIView setAnimationTransition:110 forView:self.view cache:YES];
[UIView commitAnimations];
}
Почему?
Вы неправильно используете beginAnimations:
и commitAnimations
. Предполагается, что между ними должно быть что-то, что обычно не анимируется: например, при использовании self.view.alpha = 0.5
вы получаете эффект затухания. они не влияют ни на что, что не находится между ними.
К моменту вызова viewDidAppear:
, ваш взгляд, ну... появился. Слишком поздно что-либо оживить. На самом деле вы хотите сделать нечто подобное:
- (void)showMyViewWiewWithAnimation {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationTransition:110 forView:childView cache:YES];
[parentView addSubview:childView];
[UIView commitAnimations];
}
В приведенном выше примере childView
- это то, что в Вашем примере называется self.view
.
Пожалуйста, напишите название перехода; никто не знает, что такое 110, глядя на него. Это плохой стиль. педантизм>
Вы не указываете представлению, в каком состоянии оно должно быть анимировано, поэтому оно ничего не сделает. Вам нужно поместить код между beginAnimations: context:
и commitAnimations
, который изменяет внешний вид представления (например, удаляя одно подпредставление и добавляя другое).