Как добавить анимацию к UIView в viewDidAppear?

Я пытался добавить анимацию к viewDidLoad и viewDidAppear, но это не работает:

- (void)viewDidAppear:(BOOL)animated{
 [UIView beginAnimations:@"transition" context:NULL];
 [UIView setAnimationTransition:110 forView:self.view cache:YES];
 [UIView commitAnimations];
}

Почему?

7
задан Flocked 2 February 2010 в 23:52
поделиться

2 ответа

  1. Вы неправильно используете beginAnimations: и commitAnimations. Предполагается, что между ними должно быть что-то, что обычно не анимируется: например, при использовании self.view.alpha = 0.5 вы получаете эффект затухания. они не влияют ни на что, что не находится между ними.

  2. К моменту вызова viewDidAppear: , ваш взгляд, ну... появился. Слишком поздно что-либо оживить. На самом деле вы хотите сделать нечто подобное:

    - (void)showMyViewWiewWithAnimation {
     [UIView beginAnimations:nil context:nil];
     [UIView setAnimationTransition:110 forView:childView cache:YES];
     [parentView addSubview:childView];
     [UIView commitAnimations];
    }
    

    В приведенном выше примере childView - это то, что в Вашем примере называется self.view .

  3. Пожалуйста, напишите название перехода; никто не знает, что такое 110, глядя на него. Это плохой стиль.

0
ответ дан 6 December 2019 в 07:26
поделиться

Вы не указываете представлению, в каком состоянии оно должно быть анимировано, поэтому оно ничего не сделает. Вам нужно поместить код между beginAnimations: context: и commitAnimations , который изменяет внешний вид представления (например, удаляя одно подпредставление и добавляя другое).

0
ответ дан 6 December 2019 в 07:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: