iOS Quartz2D练习 动态改变属性值

一、通过slider控制圆的缩放

1.实现过程

新建一个项目,新建一个继承自UIview的类,并和storyboard中自定义的view进行关联。

代码示例:

SLViewController.m文件

  SLViewController.m

SLView.h

  SLView

SLView.m

  View Code

效果:

  

2.注意点:

drawRect:方法不能由我们自己手动调用,只能由系统来调用。

drawRect:调用的时机:当第一次显示或者一个重绘事件发生时调用。

setNeedsDisplay方法:重新绘制,调用这个方法就会通知自定义的view重新绘制画面,调用drawRect:。
【iOS】Quartz2D练习 动态改变属性值

提示:当一个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次。该定时器创建之后,默认是不会执行的,需要把它加载到消息循环中

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/84515.html

更多阅读

什么是淘宝店铺SKU 淘宝sku是什么

 一、SKU定义和正确发布  SKU在淘宝指宝贝的销售属性集合,供买家在下单时点选,如“规格”、“颜色分类”、“尺码”等。在淘宝,部分SKU的属性值可以卖家自定义编辑,部分不可编辑。  后台位置:在宝贝发布页面中“宝贝规格”版块下(如

金庸群侠传3的攻略 金庸群侠传3攻略

??? 金庸群侠传系列非常受玩家的喜欢,然而,金庸群侠传系列游戏内容实在过于丰富,有很多玩家都不知道怎么样才能玩转金庸群侠传系列游戏。所以,为玩家准备了金庸群侠传系列游戏攻略,希望对玩家有所帮助。金庸群侠传3攻略:【建立角色篇】

明星志愿2全攻略续 明星志愿2全攻略

明星志愿2全攻略(续)自订起始参数属性值星座的基本值 + 生日加点 + 血型变化值 = 自订数值假设要玩出需要气质偏低的作秀表演(乐团伴奏、工地作秀、康乐主持)可订星座为牡羊,血型不要选A型或AB型,生日不要选4、11、18、25号这样一来气

动态改变对话框可调整大小属性 mfc 动态创建对话框

MFC的对话框CDialog是怎么控制窗口可调整大小的属性的呢?打开资源文件,对话框资源的属性列表中,有一个“Border”项,改变该项的值就可以改变窗口边框风格。实际上windows窗口是否可调整大小,就是根据边框的风格来确定的。窗口风格中与边

利用MapInfo进行缓冲区分析 缓冲区溢出漏洞利用

利用MapInfo进行缓冲区分析在进行缓冲区进行分析之前,首先了解一下缓冲区的概念。缓冲区是一种近似分析,围绕所选择地图对象的一个给定距离而产生的面积或区域。缓冲区是用户定义的,或者是对一组对象根据这些对象的属性值而产生的。结

声明:《iOS Quartz2D练习 动态改变属性值》为网友细呷温酒分享!如侵犯到您的合法权益请联系我们删除