使用NSTimer与UIView的动画,实现飘雪效果
2010-03-22, Posted in Objective-c | 3 回复
使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,看到使用path的方式实现的一个云漂来漂去的效果,实际也可以用那种方式实现,这实际就是前面说的动画效果的两种应用)。所以,我们可以在viewDidLoad事件中,增加一个图片及定时器并启动,这里的pic请在头文件中定义。
-(void)viewDidLoad{ [super viewDidLoad]; self.pic = [UIImage imageNamed:@"snow.png"];//初始化图片 //启动定时器,实现飘雪效果 [NSTimer scheduledTimerWithTimeInterval:(0.2) target:self selector:@selector(ontime) userInfo:nil repeats:YES]; }
然后再实现定时器定时调用的ontime方法:
-(void)ontime{ UIImageView *view = [[UIImageView alloc] initWithImage:pic];//声明一个UIImageView对象,用来添加图片 view.alpha = 0.5;//设置该view的alpha为0.5,半透明的 int x = round(random()%320);//随机得到该图片的x坐标 int y = round(random()%320);//这个是该图片移动的最后坐标x轴的 int s = round(random()%15)+10;//这个是定义雪花图片的大小 int sp = 1/round(random()%100)+1;//这个是速度 view.frame = CGRectMake(x, -50, s, s);//雪花开始的大小和位置 [self.view addSubview:view];//添加该view [UIView beginAnimations:nil context:view];//开始动画 [UIView setAnimationDuration:10*sp];//设定速度 view.frame = CGRectMake(y, 500, s, s);//设定该雪花最后的消失坐标 [UIView setAnimationDelegate:self]; [UIView commitAnimations]; }
相关日志
2 Comments for this entry
1 Trackback or Pingback for this entry
-
iOS-使用NSTimer与UIView的动画,实现飘雪效果 | 第三极 | 移动开发者
四月 23rd, 2011 on 12:35:24[...] 原文链接:http://www.voland.com.cn/the-use-of-a-simple-nstimer-with-uiview-animation-effects-to-achieve-snowin… >>> 进入[Android2D游戏开发]主题文章列表 转载编辑: Fgamers 转载地址:http://disanji.net/2011/04/23/use-nstimer-uiview-animation-snow-fly/ 分享到 | blog comments powered by Disqus /* [...]
三月 23rd, 2010 on 09:38:02
呵呵,看到你博客很开心哦
比软喜欢技术方面的博客
以后多交流交流
三月 23rd, 2010 on 09:48:10
哈哈,你的也是技术方面的博客,实际我也比较关注java,与Flex,以前只关心java,因为工作需要,发现Flex(AS)的语言实际也很优美,就喜欢上了,当然还有Objective-c,当然目前主要写了些Objective-c的东西,以后java的文章会多起来的