изменение анимации альфа - PullRequest
25 голосов
/ 19 мая 2011

Я всегда работал с Flash, и довольно легко менять значения альфа между кадрами. Есть ли способ сделать это в xcode 4? Я анимирую логотип, и мне нужно, чтобы первый png исчез, а второй начал появляться. TNX!

Ответы [ 3 ]

51 голосов
/ 20 мая 2011

В качестве альтернативы методу esqew (который доступен до iOS 4, поэтому вам, вероятно, следует использовать его, если вы не планируете ограничивать свою работу только iOS 4), существует также [UIView animateWithDuration:animations:], который позволяет вам сделать анимацию в блоке. Например:

[UIView animateWithDuration:3.0 animations:^(void) {
    image1.alpha = 0;
    image2.alpha = 1;
}];

Довольно просто, но, опять же, это доступно только на iOS 4, так что имейте это в виду.

11 голосов
/ 04 июля 2013

Другое решение, исчезать и исчезать:

//Disappear
[UIView animateWithDuration:1.0 animations:^(void) {
       SplashImage.alpha = 1;
       SplashImage.alpha = 0;
}
completion:^(BOOL finished){
//Appear
   [UIView animateWithDuration:1.0 animations:^(void) {
      [SplashImage setImage:[UIImage imageNamed:sImageName]];
      SplashImage.alpha = 0;
      SplashImage.alpha = 1;
 }];
}];
6 голосов
/ 20 мая 2011

Это довольно просто на самом деле. Поместите следующий код, где вы хотите, чтобы анимация происходила:

[UIView beginAnimations:NULL context:NULL];
[UIView setAnimationDuration:3.0]; // you can set this to whatever you like
/* put animations to be executed here, for example: */
[image1 setAlpha:0];
[image2 setAlpha:1];
/* end animations to be executed */
[UIView commitAnimations]; // execute the animations listed above

Подробнее об этих методах можно прочитать в этом документе .

Если вы хотите работать со структурой, которую вы упомянули в комментарии к этому вопросу:

[UIView beginAnimations:NULL context:NULL];
[UIView setAnimationDuration:3.0]; // you can set this to whatever you like
/* put animations to be executed here, for example: */
[[introAnimation objectAtIndex:0] setAlpha:0];
[[introAnimation objectAtIndex:1] setAlpha:1];
/* end animations to be executed */
[UIView commitAnimations]; // execute the animations listed above

... должно работать.

...