iOS Quartz2D练习 动态改变属性值
1.实现过程
新建一个项目,新建一个继承自UIview的类,并和storyboard中自定义的view进行关联。
代码示例:
SLViewController.m文件
SLViewController.m
SLView.h
SLView
SLView.m
View Code
效果:
2.注意点:
drawRect:方法不能由我们自己手动调用,只能由系统来调用。
drawRect:调用的时机:当第一次显示或者一个重绘事件发生时调用。
setNeedsDisplay方法:重新绘制,调用这个方法就会通知自定义的view重新绘制画面,调用drawRect:。
提示:当一个view从xib或storyboard创建出来时,会调用awakefromnib方法。
3.补充
可以通过slider的value属性监听值的改变,当然也可以指定value的取值范围(这里设定为0~100)。
二、刷帧效果
说明:把雪花状的图片绘制到view上,实现图片在视图中下落的效果。
1.实现代码:
SLView
实现效果
2.重要说明
(1)下面两个方法的调用顺序
-(void)awakeFromNib
-(id)initWithCoder:(NSCoder*)aDecoder
提示:如果view是从xib或storyboard中创建可以调用awakefromnib方法,归档。从文件创建view,其实会先调用initwithcoder这个方法。xib和storyboard也是文件。
上面两个方法,-(id)initWithCoder:(NSCoder*)aDecoder会先调用。实现该方法需要实现NSCoding协议,由于创建的UIView默认就已经实现了该协议。
可以进入到头文件查看:
运行新建的程序,通过打印可以验证上面两个方法的调用顺序。
(2)两个定时器
第一个:
[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次。该定时器创建之后,默认是不会执行的,需要把它加载到消息循环中
更多阅读
什么是淘宝店铺SKU 淘宝sku是什么
一、SKU定义和正确发布 SKU在淘宝指宝贝的销售属性集合,供买家在下单时点选,如“规格”、“颜色分类”、“尺码”等。在淘宝,部分SKU的属性值可以卖家自定义编辑,部分不可编辑。 后台位置:在宝贝发布页面中“宝贝规格”版块下(如
金庸群侠传3的攻略 金庸群侠传3攻略
??? 金庸群侠传系列非常受玩家的喜欢,然而,金庸群侠传系列游戏内容实在过于丰富,有很多玩家都不知道怎么样才能玩转金庸群侠传系列游戏。所以,为玩家准备了金庸群侠传系列游戏攻略,希望对玩家有所帮助。金庸群侠传3攻略:【建立角色篇】
明星志愿2全攻略续 明星志愿2全攻略
明星志愿2全攻略(续)自订起始参数属性值星座的基本值 + 生日加点 + 血型变化值 = 自订数值假设要玩出需要气质偏低的作秀表演(乐团伴奏、工地作秀、康乐主持)可订星座为牡羊,血型不要选A型或AB型,生日不要选4、11、18、25号这样一来气
动态改变对话框可调整大小属性 mfc 动态创建对话框
MFC的对话框CDialog是怎么控制窗口可调整大小的属性的呢?打开资源文件,对话框资源的属性列表中,有一个“Border”项,改变该项的值就可以改变窗口边框风格。实际上windows窗口是否可调整大小,就是根据边框的风格来确定的。窗口风格中与边
利用MapInfo进行缓冲区分析 缓冲区溢出漏洞利用
利用MapInfo进行缓冲区分析在进行缓冲区进行分析之前,首先了解一下缓冲区的概念。缓冲区是一种近似分析,围绕所选择地图对象的一个给定距离而产生的面积或区域。缓冲区是用户定义的,或者是对一组对象根据这些对象的属性值而产生的。结