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