记录一次Quartz2D学习(七)
(六)内主要讲述了图片的裁剪
本次主要讲交互
7.交互
7.1 通过外部刷新内部的显示效果
初始化的时候设定好初始值,调用setNeedsDisplay方法来重新绘制
- (instancetype)init
{
self = [super init];
if (self) {
self.backgroundColor = [UIColor whiteColor];
}
return self;
}
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSLog(@"initWithFrame");
self.radius = 1 ;
self.backgroundColor = [UIColor whiteColor];
}
return self;
}
-(void)setRadius:(float)radius{
_radius = radius*100;
[self setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect {
NSLog(@"drawRect:%f",self.radius);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor grayColor] set];
CGContextAddArc(ctx, 150, 150, self.radius, 0, M_PI*2, 0);
CGContextFillPath(ctx);
}
7.2使用runLoop进行逐帧播放的动画
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor whiteColor];
self.img_y=0;
//初始化时间管理器
CADisplayLink * displayer =[CADisplayLink displayLinkWithTarget:self selector:@selector(upDateImage)];
//添加时间管理器到runLoop
[displayer addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
}
return self;
}
-(void)upDateImage{
[self setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect {
//位移量
self.img_y +=5;
//防止越界
if (self.img_y > [UIScreen mainScreen].bounds.size.height) {
self.img_y = 0;
}
//可有可无
CGContextRef ctx = UIGraphicsGetCurrentContext();
//图片加载
UIImage * img =[UIImage imageNamed:@"图标-首页"];
//图片绘制到对应点
[img drawAtPoint:CGPointMake(0, self.img_y)];
}
最新文章
- 创建dialog
- Python4周 入职培训的过程
- selenium打开带有扩展的chrome
- lua学习笔记之-语言基础
- 查看ip地址信息和配置临时ip
- 获取iOS应用的版本号和app名称
- nginx负载均衡(一)
- linux生成公钥私钥并上传到服务器上实现免密登陆
- 关于windows下的makefile学习
- bzoj3545 Peaks
- MAC上mongodb连接不上
- eclipse格式化代码样式
- jQuery animate() 改变颜色
- Kettle变量和自己定义java代码的实例应用
- N-Gram的数据结构
- HDU 4115 Eliminate the Conflict(2-SAT)(2011 Asia ChengDu Regional Contest)
- Navicat断网时连不上数据库
- Spark on Yarn——spark1.5.1集群配置
- cocos2d-x 打包成so文件之后,假设出现错误,能够使用ndk-stack来查看里面的异常
- 【BZOJ2440】完全平方数(莫比乌斯函数,容斥原理)