Как реплицировать анимацию увеличения при регулярном запуске приложения (нажмите значок приложения на домашнем экране) на iPhone - PullRequest
4 голосов
/ 05 августа 2010

Я хочу воспроизвести анимацию при запуске приложения на iPhone.Я думаю, что первый масштаб увеличивается с 50% до 100%.позже я хочу использовать это как переход между двумя видами.Есть идеи, как тиражировать, или в sdk есть готовое решение от apple?Большое спасибо:)

Ответы [ 2 ]

10 голосов
/ 12 августа 2010

Вы можете сделать то же самое с CABasicAnimation и CAAnimationGroup, я действительно думал, что Core Animation по UIKit Animations был более плавным, и это дает вам больше контроля.

CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
animationGroup.removedOnCompletion = YES;

CABasicAnimation *fadeAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeAnimation.fromValue = [NSNumber numberWithFloat:0.0];
fadeAnimation.toValue = [NSNumber numberWithFloat:1.0];

CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
scaleAnimation.fromValue = [NSNumber numberWithFloat:0.5];
scaleAnimation.toValue = [NSNumber numberWithFloat:1.00];

animationGroup.animations = [NSArray arrayWithObjects:fadeAnimation, scaleAnimation, nil];

[self.layer addAnimation:animationGroup forKey:@"fadeAnimation"];
self.layer.opacity = 1.0;

"У кошки всегда есть более чем один способ"

6 голосов
/ 05 августа 2010

Вы можете применить масштабное преобразование к UIView, а затем оживить его до его нормального состояния.

// Set the the view's scale to half
[viewToScale setTransform:CGAffineTransformMakeScale(0.5,0.5)];

// Set the transform back to normal (identity) in an animation when you're
// ready to animate
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[viewToScale setTransform:CGAffineTransformIdentity];
[UIView commitAnimations];

Хитрость в том, что вам нужно будет установить вид на меньший масштаб в отдельном цикле выполнения от анимации, иначе вы не увидите анимацию вида. Таким образом, вы можете установить меньший масштаб и затем вызвать -performSelector: withObject: afterDelay: , чтобы фактически выполнить анимацию.

...