我可以使用多个图像而不是一个来制作动画吗?

时间:2012-03-07 05:35:39

标签: objective-c ios animation core-animation cakeyframeanimation

使用核心图形,我将图像移动到预定义的路径上。

我想使用多个图像而不是一个图像来实现动画。 任何人都可以告诉我如何实现这一点(使用多个图像而不是一个)?

这是我的单张图片代码:

bounceLayer = [CALayer layer];
bounceLayer.frame = CGRectMake(12, 12, 12, 12);
[bounceLayer setPosition:CGPointMake(175.0f, 100.0f)];  

bounceLayer.contents = (id) [UIImage imageNamed:
                                 [NSString stringWithFormat:@"Avatar_%d.png",i]].CGImage;
 [[[self view] layer] addSublayer:bounceLayer];
 [bounceLayer setPosition:CGPointMake(120.0f, 49.0f)];
 [bounceLayer addAnimation:[self bounceAnimationPathWithDuration:3.0f] forKey:nil];

bounceAnimationPathWithDuration - 是一个创建路径的函数

Core图形可以实现吗?或者我应该使用Cocoa 2D?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用多个图像而不是一个图像来实现动画。卡通的制作方式。您甚至可以使用Bezier曲线在动画中制作不同的图像。它会是这样的 -

NSArray *animImages  = [[NSArray alloc] initWithObjects:
                        [UIImage imageWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@"SodaPour1" ofType:@"png"]],
                        [UIImage imageWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@"SodaPour39" ofType:@"png"]],
                        nil];

imgGlass.animationImages = GlassAnim;
imgGlass.animationDuration = 2.5;
imgGlass.contentMode = UIViewContentModeScaleAspectFit;
imgGlass.animationRepeatCount=1;
[GlassAnim release];

您也可以查看此内容 - How to animate images using bitmaps / rgb data in iOS