iOS学习笔记-057.自定义View04——刷帧动画
来源:互联网 发布:2013网络歌手 编辑:程序博客网 时间:2024/05/17 01:59
- 自定义View04刷帧动画
- 一视图重新绘制的方法
- 二基本刷帧代码
- ViewControllerm
- WMViewm
- 三基本刷帧图示
- 四两个定时器
- 五刷帧动画代码
- 六刷帧动画图示
自定义View04——刷帧动画
一、视图重新绘制的方法
二、基本刷帧代码
ViewController.m
//// ViewController.m// 03_UIView46_刷帧//// Created by 杞文明 on 2016/04/15 07:59:13 星期五// Copyright © 2016年 杞文明. All rights reserved.//#import "ViewController.h"#import "WMView.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet WMView *wmView;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];}//半径改变- (IBAction)radiusChange:(UISlider *)sender { self.wmView.radius = sender.value;}@end
WMView.m
//// WMView.m// 03_UIView46_刷帧//// Created by 杞文明 on 2016/04/15 07:59:20 星期五// Copyright © 2016年 杞文明. All rights reserved.//#import "WMView.h"@implementation WMView-(void)awakeFromNib{ //让其默认有个半径 self.radius = 10;}-(void)setRadius:(float)value{ _radius = value; //通知自定义view重新绘制图形 [self setNeedsDisplay];}- (void)drawRect:(CGRect)rect { //1.获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2.绘画 CGContextAddArc(ctx,rect.size.width/2, rect.size.height/2,_radius, 0, 2*M_PI, 0); [[UIColor purpleColor]set]; //3.渲染 CGContextFillPath(ctx);}@end
三、基本刷帧图示
四、两个定时器
// NSTimer一般用于定时的更新一些非界面上的数据NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updataImage) userInfo:nil repeats:YES];// 创建CADisplayLink, 默认每秒60次CADisplayLink *display = [CADisplayLink displayLinkWithTarget:self selector:@selector(updataImage)];// 将CADisplayLink加入到消息循环中[display addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
五、刷帧动画代码
//// WMView.m// 03_UIView47_刷帧动画//// Created by 杞文明 on 2016/04/15 08:08:47 星期五// Copyright © 2016年 杞文明. All rights reserved.//#import "WMView.h"@implementation WMView-(void)awakeFromNib{ //创建CADisplayLink,默认每秒60次 CADisplayLink * display = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateImage)]; //把CADisplayLink加入到信息循环中去 [display addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];}//更新这个方法,其实就是重新绘制而已-(void)updateImage{ [self setNeedsDisplay];}// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect { //1.获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2.绘制 self.imageY +=5; if(self.imageY>=rect.size.height){ self.imageY = 0; } //3.渲染 UIImage *image = [UIImage imageNamed:@"snow"]; [image drawAtPoint:CGPointMake(10,self.imageY)];}@end
六、刷帧动画图示
0 0
- iOS学习笔记-057.自定义View04——刷帧动画
- 使用 Android Studio自定义View04——视频音量调控
- 学习笔记——jQuery自定义动画
- iOS学习笔记08—动画
- iOS学习笔记-077.核心动画03——CAKeyframeAnimation(关键帧动画)
- Ubuntu Cocos2dx 学习笔记——自定义动画
- iOS动画技术——iOS 7自定义过渡动画
- iOS学习笔记-074.CALayer04——隐式动画
- iOS学习笔记-075.核心动画01——简介
- iOS学习笔记-076.核心动画02——CABasicAnimation(基本动画)
- iOS学习笔记-078.核心动画04——CATransition(转场动画)
- iOS学习笔记-079.核心动画05——CAAnimationGroup(动画组)
- iOS学习笔记-080.核心动画06——UIView与核心动画对比
- iOS学习笔记-核心动画
- iOS 学习笔记 UIView动画
- iOS学习笔记——使用NSUserDefaults存储自定义数据
- iOS学习笔记-030.UITableView——自定义单元格UITableViewCell
- iOS学习笔记-053.自定义View01——基础
- 工作流框架--activiti(一)--建库
- Android侦听应用(Package)变化的方法(2)实现PackageMonitor
- 原装Win8本改装Win7不完全指南
- 深入浅出RPC
- 极光推送getRegistrationID为空,UnsatisfiedLinkError异常
- iOS学习笔记-057.自定义View04——刷帧动画
- 关于数组,sizeof(),strlen的计算问题
- Android复习-fragment声明周期与Activity生命周期(个人笔记)
- Linux3.2.81内核移植(2440)
- 其他,備忘
- C++ 异常机制
- eclipse中的java工程项目如何引用外部jar包和dll动态链接库?
- 二叉树建立 ---层次遍历方式
- 用Vue2.0实现tabbar