iOS绘制涂鸦

        其实绘图过程也就点成线的过程,在ios绘图需要使用到的CGContextRef和CGMutablePathRef,下面简单说一些绘制的过程。

1、首先获取上下文内容也就是画在那个画布上

        CGContextRef context = UIGraphicsGetCurrentContext();

2、创建路径

        CGMutablePathRef path = CGPathCreateMutable();  

3、添加起始点

        CGPathMoveToPoint(path, &CGAffineTransformIdentity, x,y);

4、添加路径上的点绘制直线(从起始位置开始)

        CGPathAddLineToPoint(path, &CGAffineTransformIdentity,x,y); 

5、把路径添加到上下文(画布)中

        CGContextAddPath(context, path); 

6、设置路径的样式笔触颜色

        CGContextSetRGBStrokeColor(context, model.R, model.G, model.B,1);    

        设置线条宽度 

        CGContextSetLineWidth(context, model.pathWidth);

        把路径在画布上绘制出来

        CGContextStrokePath(context);

        这里一个基本的绘制过程就完成了,但是要是先在屏幕上捕捉触摸点然后挥之路径还需要实现touchesMoved: withEvent:方法,获取触摸的每个点并存储触摸关键点,然后在这里调用setNeedsDisplay方法,则会自动调用drawRect方法进行重绘,drawRect这里将存储的关键点传入即可完成手动绘制想要的图型。

        最后再补充一点就是保持当前绘制的内容为图片存到相册

// currentView 当前的view  创建一个基于绘图的图形上下文并指定大小为当前视图的bounds

UIGraphicsBeginImageContext(self.imageView.bounds.size); 

// renderInContext呈现接受者及其子范围到指定的上下文

[self.imageView.layer renderInContext:UIGraphicsGetCurrentContext()];

// 返回一个基于当前图形上下文的图片

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

// 移除栈顶的基于当前位图的图形上下文

UIGraphicsEndImageContext();

// 然后将该图片保存到图片图

UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容