使用NSTimer与UIView的动画,实现飘雪效果

87261149 2012-03-22

使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,看到使用path的方式实现的一个云漂来漂去的效果,实际也可以用那种方式实现,这实际就是前面说的动画效果的两种应用)。所以,我们可以在viewDidLoad事件中,增加一个图片及定时器并启动,这里的pic请在头文件中定义。

-(void)viewDidLoad{

[superviewDidLoad];

self.pic=[UIImageimageNamed:@"snow.png"];//初始化图片

//启动定时器,实现飘雪效果

[NSTimerscheduledTimerWithTimeInterval:(0.2)target:selfselector:@selector(ontime)userInfo:nilrepeats:YES];

}

然后再实现定时器定时调用的ontime方法:

-(void)ontime{

UIImageView*view=[[UIImageViewalloc]initWithImage:pic];//声明一个UIImageView对象,用来添加图片

view.alpha=0.5;//设置该view的alpha为0.5,半透明的

intx=round(random()%320);//随机得到该图片的x坐标

inty=round(random()%320);//这个是该图片移动的最后坐标x轴的

ints=round(random()%15)+10;//这个是定义雪花图片的大小

intsp=1/round(random()%100)+1;//这个是速度

view.frame=CGRectMake(x,-50,s,s);//雪花开始的大小和位置

[self.viewaddSubview:view];//添加该view

[UIViewbeginAnimations:nilcontext:view];//开始动画

[UIViewsetAnimationDuration:10*sp];//设定速度

view.frame=CGRectMake(y,500,s,s);//设定该雪花最后的消失坐标

[UIViewsetAnimationDelegate:self];

[UIViewcommitAnimations];

}

原文地址:http://www.voland.com.cn/the-use-of-a-simple-nstimer-with-uiview-animation-effects-to-achieve-snowing

相关推荐