//********************************************************************************* 定时器 NSTimer 和 CADisplayLink 类的使用 15 动画 气球 打地鼠
//第五天
//掌握定时器NSTimer和CADisplayLink 的使用
//CADisplayLink 多用于UI刷新,1/60秒调用一次,要添加到主运行循环才能使用
“一个气球下降” 操作步骤:
(1)自定义一个balloonview 添加一个position 属性,用于记录气球的位置
(2)在drawRect方法中,创建一张图片,并画出来 //drawRect方法 会在view显示到屏幕的时候调用一次
(3)在awakeFromNib 中 使用定时器NSTimer 实现气球下降功能效果 //awakeFromNib加载完成的时候调用
[NSTimer scheduledTimerWithTimerInterval:1 target:self selector:@selector(setNeedsDisplay)userInfo:nil repeats:YES];
#warning 结构体不能直接赋值
(4)在drawRect如果气球的位置到底底部,从顶部重新开始下降
(5)中awakeFromNib 中 使用定时器CADisplayLink实现气球下载功能效果
1.创建CADisplayLink对象, 调用addToRunLoop 定时器就会执行
2.CADisplayLink 有个Duration 属性,代理定时器调用的间隔时间,不能改。
//CADisplayLink 定时器 1秒执行60
CADisplayLink *link =[CADisplayLink displayLinkWithTarget:self selector:@selector(setNeedsDisplay)];
//要执行定时器, 添加到主运行循环
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
#warning 调用 init 方法 和 initwithframe 方法 最终队友调用 initwithframe
// y方向上减少10 距离 随机
location.y -= arc4random_uniform(10)*0.1;
// 如果气球达到顶部,重新往上升
if(location.y<0){location.y = rect.size.height;}
// 更新“位置数组”里面的值
[self.locations replaceObjectAtIndex:i withObject:[NSValue valueWithCGPoint:location]];
[self.ballons[i] drawAtPoint:location];
// 渲染
[ballon drawAtPoint :location];
IOS学习之—— 定时器 NSTimer 和 CADisplayLink 类的使用
最新推荐文章于 2020-08-12 11:04:01 发布