绘制图画
来源:互联网 发布:淘宝真实流量购买 编辑:程序博客网 时间:2024/04/27 17:25
//如果在绘图的时候需要用到定时器,通常
// NSTimer很少用于绘图,因为调度优先级比较低,并不会准时调用
- (void)awakeFromNib
{
// 创建定时器
// [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timeChange) userInfo:nil repeats:YES];
CADisplayLink *link = [CADisplayLinkdisplayLinkWithTarget:selfselector:@selector(timeChange)];
// 添加主运行循环
[link addToRunLoop:[NSRunLoopmainRunLoop]forMode:NSDefaultRunLoopMode];
}
// CADisplayLink:每次屏幕刷新的时候就会调用,屏幕一般一秒刷新60次
// 1秒2次
staticint count =0;
- (void)timeChange
// NSTimer很少用于绘图,因为调度优先级比较低,并不会准时调用
- (void)awakeFromNib
{
// 创建定时器
// [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timeChange) userInfo:nil repeats:YES];
CADisplayLink *link = [CADisplayLinkdisplayLinkWithTarget:selfselector:@selector(timeChange)];
// 添加主运行循环
[link addToRunLoop:[NSRunLoopmainRunLoop]forMode:NSDefaultRunLoopMode];
}
// CADisplayLink:每次屏幕刷新的时候就会调用,屏幕一般一秒刷新60次
// 1秒2次
staticint count =0;
- (void)timeChange
{
// 注意:这个方法并不会马上调用drawRect,其实这个方法只是给当前控件添加刷新的标记,等下一次屏幕刷新的时候才会调用drawRect
[selfsetNeedsDisplay];
}
绘制头像圆角的时候尽量用这个方法,因为它能狗减少内存消耗.
// NO代表透明
UIGraphicsBeginImageContextWithOptions(self.size,NO,0.0);
// 获得上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 添加一个圆
CGRect rect = CGRectMake(0,0,self.size.width,self.size.height);
CGContextAddEllipseInRect(ctx, rect);
// 裁剪
CGContextClip(ctx);
// 将图片画上去
[selfdrawInRect:rect];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIGraphicsBeginImageContextWithOptions(self.size,NO,0.0);
// 获得上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 添加一个圆
CGRect rect = CGRectMake(0,0,self.size.width,self.size.height);
CGContextAddEllipseInRect(ctx, rect);
// 裁剪
CGContextClip(ctx);
// 将图片画上去
[selfdrawInRect:rect];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
46.绘制图片,如果图片过大无法全部显示,可以让其从顶部显示.
// 开启图形上下文
UIGraphicsBeginImageContextWithOptions(topic.pictureF.size, YES,0.0);
// 将下载完的image对象绘制到图形上下文
CGFloat width = topic.pictureF.size.width;
CGFloat height = width * image.size.height / image.size.width;
[image drawInRect:CGRectMake(0,0, width, height)];
// 获得图片
self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
// 结束图形上下文
UIGraphicsEndImageContext();
UIGraphicsBeginImageContextWithOptions(topic.pictureF.size, YES,0.0);
// 将下载完的image对象绘制到图形上下文
CGFloat width = topic.pictureF.size.width;
CGFloat height = width * image.size.height / image.size.width;
[image drawInRect:CGRectMake(0,0, width, height)];
// 获得图片
self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
// 结束图形上下文
UIGraphicsEndImageContext();
}];
0 0
- 绘制图画
- 20100917_Dawning_绘制图画
- 图画
- Android 绘制手势路线制作图画板并把View保存为图片
- JAVA中Swing的绘制原理以及如何实现动态图画
- 图画完了
- 图画段子
- 图画主题句型
- [作品]文字图画
- 有趣的图画时钟
- UML类图画法
- UML_时序图画法
- UML类图画法
- iOS -- 地图画圈
- 图画hadoop -- 生态圈
- UML_时序图画法
- UML类图画法
- 图画、图片显示
- 设置导航控制器内容
- Cordova 生成错误 安装本地 npm 包时出错 解决方案
- 第42课:Spark Streaming中checkpoint内幕实现彻底解密(源代码提问:checkpoint源代码修改,适用场景:spark的版本升级,数据恢复。。)
- Inorder Successor in BST
- Valid Parentheses
- 绘制图画
- 欧几里得最大公约数两种算法
- Uboot与Linux之间的参数传递
- Android中Recyclerview使用4----选中某一条目
- 简单的block页面传值
- uboot 命令分析(一) — bootm
- 性别显示
- 图像和链接 、 表格 、 列表
- runLoop机制