Подтвердить что ты не робот

Изменение альфа-анимации

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

//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;
 }];
}];

Ответ 3

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

[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

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