Image Based Animation(基于图片的动画)
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
一个动画是由一系列图片组成的,当我们快速翻看这些图片的时候,它会给我们一种动画的错觉。当我们的图片越多,翻看越快的时候,动画就越流畅。
为了增加我们水晶球应用的神秘感,我希望在预测的时候,这个水晶球可以向上的弹起,然后旋转在落回到原来的位置。那么我们应该如何实现呢?实际上非常简单,因为我们已经准备好了24张图片,我们要让这24张图片在1秒中全部展现出来,让我们看看如何来编码吧…
1、将24张图片添加进我们的的水晶球应用中("Add Files to "crystal ball"…"
)
2、点击ViewController.h
,我们需要增加一个新的属性,代码如下:
@property (strong,nonatomic) UIImageView *imageView;
3、点击ViewController.m
,找到viewDidLoad
方法,将如下语句:
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
更改为:
self.imageView = [[UIImageView alloc] initWithImage:image];
4、添加如下语句,将24张图片添加到数组中并传递给imageView
对象:
self.imageView.animationImages=[NSArray arrayWithObjects:
[UIImage imageNamed:@"cball00001.png"],
[UIImage imageNamed:@"cball00002.png"],
[UIImage imageNamed:@"cball00003.png"],
[UIImage imageNamed:@"cball00004.png"],
[UIImage imageNamed:@"cball00005.png"],
[UIImage imageNamed:@"cball00006.png"],
[UIImage imageNamed:@"cball00007.png"],
[UIImage imageNamed:@"cball00008.png"],
[UIImage imageNamed:@"cball00009.png"],
[UIImage imageNamed:@"cball00010.png"],
[UIImage imageNamed:@"cball00011.png"],
[UIImage imageNamed:@"cball00012.png"],
[UIImage imageNamed:@"cball00013.png"],
[UIImage imageNamed:@"cball00014.png"],
[UIImage imageNamed:@"cball00015.png"],
[UIImage imageNamed:@"cball00016.png"],
[UIImage imageNamed:@"cball00017.png"],
[UIImage imageNamed:@"cball00018.png"],
[UIImage imageNamed:@"cball00019.png"],
[UIImage imageNamed:@"cball00020.png"],
[UIImage imageNamed:@"cball00021.png"],
[UIImage imageNamed:@"cball00022.png"],
[UIImage imageNamed:@"cball00023.png"],
[UIImage imageNamed:@"cball00024.png"],nil];
imageView.animationDuration=1.0;
imageView.animationRepeatCount=1;
5、将如下代码分别添加至motionBegan
、touchesBegen
方法的最后一行:
[self.imageView startAnimating];
让我们来运行一下,看看效果吧…
在线练习
{$ activeFileHint $}