您的位置:首页 > 移动开发 > IOS开发

iOS海哥开发笔记 (海哥原创,绘图Quartz-2d的简单使用 二)

2016-03-08 10:07 351 查看
1.很多应用APP头像是圆的,怎么裁剪呢,绘图

那你可能说,不是有现成的

self.layer.masksToBounds

self.layer.cornerRadius 系统自带属性吗,那我就简单的说下原因吧

原因:drawrect会减轻CPU的绘制压力,这种方式UI可以将动画流畅性优化到极致,缺点是这些代码不好写啊,

,也会增加内存的开销。

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 图形上下文栈

CGContextSaveGState(ctx);

CGContextAddEllipseInRect(ctx, CGRectMake(100, 100, 200, 200));

// 裁剪

CGContextClip(ctx);

// 渲染

CGContextStrokePath(ctx);

//
裁剪要放在关闭上下文之前

UIImage *image = [UIImage imageNamed:@"22222"];

[image drawInRect:CGRectMake(100, 100, 200, 200)];

// 将栈定的上下文出栈

CGContextRestoreGState(ctx);

CGContextAddEllipseInRect(ctx, CGRectMake(70, 400, 200, 200));

CGContextFillPath(ctx);

2.重绘

//
重绘(这个方法内部会重新调用Drawrect方法:进行绘制,之前的东西全部清除)

[self setNeedsDisplay];

看了这些你就可以自己写一个涂鸦板了

这些只是简单的介绍吧,笔者很菜,入有错误,请联系改正,转载注明出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: