绘制图画
2016-07-16 07:39
288 查看
//
如果在绘图的时候需要用到定时器,通常
// NSTimer很少用于绘图,因为调度优先级比较低,并不会准时调用
- (void)awakeFromNib
{
//
创建定时器
// [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timeChange) userInfo:nil repeats:YES];
CADisplayLink
*link = [CADisplayLink
displayLinkWithTarget:self
selector:@selector(timeChange)];
//
添加主运行循环
[link
addToRunLoop:[NSRunLoop
mainRunLoop]
forMode:NSDefaultRunLoopMode];
}
// CADisplayLink:每次屏幕刷新的时候就会调用,屏幕一般一秒刷新60次
// 1秒
2次
static
int count =
0;
- (void)timeChange
{
//
注意:这个方法并不会马上调用drawRect,其实这个方法只是给当前控件添加刷新的标记,等下一次屏幕刷新的时候才会调用drawRect
[self
setNeedsDisplay];
}
绘制头像圆角的时候尽量用这个方法,因为它能狗减少内存消耗.
// 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);
//
将图片画上去
[self
drawInRect: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();
}];
如果在绘图的时候需要用到定时器,通常
// NSTimer很少用于绘图,因为调度优先级比较低,并不会准时调用
- (void)awakeFromNib
{
//
创建定时器
// [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timeChange) userInfo:nil repeats:YES];
CADisplayLink
*link = [CADisplayLink
displayLinkWithTarget:self
selector:@selector(timeChange)];
//
添加主运行循环
[link
addToRunLoop:[NSRunLoop
mainRunLoop]
forMode:NSDefaultRunLoopMode];
}
// CADisplayLink:每次屏幕刷新的时候就会调用,屏幕一般一秒刷新60次
// 1秒
2次
static
int count =
0;
- (void)timeChange
{
//
注意:这个方法并不会马上调用drawRect,其实这个方法只是给当前控件添加刷新的标记,等下一次屏幕刷新的时候才会调用drawRect
[self
setNeedsDisplay];
}
绘制头像圆角的时候尽量用这个方法,因为它能狗减少内存消耗.
// 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);
//
将图片画上去
[self
drawInRect: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();
}];
相关文章推荐
- 【CF 应用开发大赛】IT Share(IT分享网)
- IT职场英语,必须学会
- it人员要看饮食保健养生谚语
- iOS开发之路--微博“更多”页面
- iOS开发之路--微博骨架搭建
- iOS开发使用JSON解析网络数据
- IOS开发代码分享之获取启动画面图片的string
- iOS开发实现音频播放功能
- iOS开发之视图切换
- iOS开发使用XML解析网络数据
- IOS开发实现录音功能
- iOS开发之UIScrollView详解
- IOS开发之路--C语言数组和字符串
- iOS开发之触摸事件
- IOS开发代码分享之用nstimer实现倒计时功能
- iOS开发使用GDataXML框架解析网络数据
- iOS开发之UITableView详解
- IOS开发代码分享之设置UISearchBar的背景颜色
- ios推送证书