猫猫学IOS(三十三)UI之Quartz2D雪花飘落效果刷帧
来源:互联网 发布:意林稿酬和投稿必知 编辑:程序博客网 时间:2024/05/21 17:57
猫猫分享,必须精品
原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243?viewmode=contents
效果:
可以加入随机数实现真的飘落效果哦。
代码:
-(id)initWithCoder:(NSCoder *)aDecoder{ //请注意这里一定要先初始化父类的构造方法 if (self=[super initWithCoder:aDecoder]) { NSLog(@"initWithCoder:"); //NSTimer一般用于定时的更新一些非界面上的数据,告诉多久调用一次 //使用定时器,使用该定时器会出现卡顿的现象 // [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateImage) userInfo:nil repeats:YES]; // CADisplayLink刷帧,默认每秒刷新60次 //该定时器创建之后,默认是不会执行的,需要把它加载到消息循环中 CADisplayLink *display= [CADisplayLink displayLinkWithTarget:self selector:@selector(updateImage)]; [display addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; } return self;}-(void)updateImage{ //调用该方法重绘画面 [self setNeedsDisplay];}-(void)awakeFromNib{ NSLog(@"awakeFromNib");}- (void)drawRect:(CGRect)rect{ //把图片绘制到view上 //每次调用该方法对画面进行重绘时,imageY的值就+5 self.imageY+=5; //判断,当雪花超出屏幕的时候,让图片从头开始降落 if (self.imageY>rect.size.height) { self.imageY=0; } UIImage *image=[UIImage imageNamed:@"snow"]; [image drawAtPoint:CGPointMake(188, self.imageY)]; UIImage *image2=[UIImage imageNamed:@"cat"]; [image2 drawAtPoint:CGPointMake(10, self.imageY)];}
重要说明
(1)下面两个方法的调用顺序
-(void)awakeFromNib
-(id)initWithCoder:(NSCoder *)aDecoder
提示:如果view是从xib或storyboard中创建可以调用awakefromnib方法,归档。从文件创建view,其实会先调用initwithcoder这个方法。xib和storyboard也是文件。
上面两个方法,-(id)initWithCoder:(NSCoder *)aDecoder会先调用。实现该方法需要实现NSCoding协议,由于创建的UIView默认就已经实现了该协议。
可以进入到头文件查看:
定时器
第一个:
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateImage) userInfo:nil repeats:YES];
说明: NSTimer一般用于定时的更新一些非界面上的数据,告诉多久调用一次
第二个:
CADisplayLink *display= [CADisplayLink displayLinkWithTarget:self selector:@selector(updateImage)]; [display addToRunLoop:[NSRunLoopmainRunLoop] forMode:NSDefaultRunLoopMode];
说明: CADisplayLink刷帧,默认每秒刷新60次。该定时器创建之后,默认是不会执行的,需要把它加载到消息循环中
12 0
- 猫猫学IOS(三十三)UI之Quartz2D雪花飘落效果刷帧
- 猫猫学IOS(三十三)UI之Quartz2D雪花飘落效果刷帧
- AJ学IOS(33)UI之Quartz2D雪花飘落效果刷帧
- IOS 雪花飘落效果
- AS3雪花飘落效果
- 雪花飘落效果
- 雪花飘落效果
- Android 雪花飘落效果
- 雪花飘落效果
- 网页的雪花飘落效果
- 雪花飘落的动态效果
- iOS成长之路-很难青云-iOS基础(一)雪花飘落
- 【OpenGL】Shader实例分析(七)- 雪花飘落效果
- 猫猫学IOS(二十八)UI之Quartz2D简单介绍
- 猫猫学IOS(三十一)UI之Quartz2D图形上下文栈
- 猫猫学IOS(三十一)UI之Quartz2D图形上下文栈
- 页面中雪花飘落的效果
- JS实现飘落的雪花效果
- oracle数据库简单操作
- Spring学习1:Spring源码阅读环境搭建
- 李开复写给中国大学生的第一封信
- 用java打印字母金字塔
- 黑马程序员-List集合
- 猫猫学IOS(三十三)UI之Quartz2D雪花飘落效果刷帧
- HDU ACM 4512 吉哥系列故事——完美队形I ->LCIS最长公共递增子序列
- Wireshark图解教程(简介、抓包、过滤器)
- JDK编译测试
- 关于widget的问题
- 7种形式的Android Dialog使用举例
- 数据库常用函数汇总
- ArrayBlockingQueue 源码阅读与分析
- Android Studio删除module