如何在iPhone上定期启动应用程序(在HomeScreen上推送应用程序图标)时复制“向上扩展动画”

时间:2010-08-05 16:19:57

标签: iphone uiview core-animation cgaffinetransform

我想在iPhone上启动应用程序时复制动画。 我认为第一种观点从50%扩大到100%。 后来我想用它作为2个视图之间的过渡。 任何想法如何复制,或者在sdk中是否有来自苹果的现成解决方案? 非常感谢你:))

2 个答案:

答案 0 :(得分:10)

你可以用CABasicAnimation和CAAnimationGroup做同样的事情,我实际上认为UIKit Animations上的Core Animation更加流畅,它可以让你获得更多控制权。

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;

“总有一种方法可以给猫皮肤”

答案 1 :(得分:6)

您可以将缩放变换应用于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:来实际执行动画。