一、绘制直线、线段
#pragma mark 绘制直线
- (void)drawLine{
//获取上下文
CGContextRef contextRef = UIGraphicsGetCurrentContext();
//创建路径,并设置为可变路径
CGMutablePathRef mutablePath = CGPathCreateMutable();
/*
*设置路径上的点
*设置路径的起始点
*mutablePath 需要添加起始点的可变路径
*还有transform 坐标系的变化
**/
CGPathMoveToPoint(mutablePath, NULL, 50, 50);
/*
*向路径中添加点
*/
CGPathAddLineToPoint(mutablePath, NULL, 106, 100);
CGPathAddLineToPoint(mutablePath, NULL, 222, 140);
CGPathAddLineToPoint(mutablePath, NULL, 100, 200);
CGPathAddLineToPoint(mutablePath, NULL, 250, 50);
CGPathAddLineToPoint(mutablePath, NULL, 50, 190);
/*
*封闭路径,将起点和终点连接起来
**/
CGPathCloseSubpath(mutablePath);
/*设置绘制的属性*
*1.线条分段的颜色
*2.设置图形的填充颜色
*3.设置线条的宽度
*4.设置线条分段连接点的样式
**/
CGContextSetStrokeColorWithColor(contextRef, [UIColor greenColor].CGColor);
CGContextSetFillColorWithColor(contextRef, [UIColor cyanColor].CGColor);
CGContextSetLineWidth(contextRef, 2);
CGContextSetLineJoin(contextRef, kCGLineJoinRound);
/*开始绘制路径
*1.将创建好的路径添加到上下文中
*2.在上下文中绘制已经添加的路径
*<#CGPathDrawingMode mode#> 绘制模式
**/
CGContextAddPath(contextRef, mutablePath);
CGContextDrawPath(contextRef, kCGPathFillStroke);
/*
*最后销毁create函数创建的变量,因为在CG框架中,所有使用create函数创建的变量都需要手动来销毁
*/
CGPathRelease(mutablePath);
}
绘制直线的另一种方式
- (void)drawLineWay2{
/*
*创建需要绘制的区域*/
CGRect rect = self.frame;
/*
*将rect添加到图形上下文中
*/
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddRect(context, rect);
/*
*设置颜色、宽度
*/
[[UIColor redColor] setFill];
[[UIColor yellowColor] setStroke];
CGContextSetLineWidth(context, 100);
CGContextDrawPath(context, kCGPathFillStroke);
}
二、绘制圆形
CGContextRef contextRef = UIGraphicsGetCurrentContext();
/*
*参数说明
*<#CGContextRef _Nullable c#> 上下文
*<#CGFloat x#> 和 <#CGFloat y#> 圆心坐标
*<#CGFloat radius#> 半径
*<#CGFloat startAngle#> 和 <#CGFloat endAngle#> 开始和结束的角度,0度在x轴的正方向,角度沿顺时针方向增大
*<#int clockwise#> 绘制的方向,1表示逆时针绘制,0表示顺时针绘制
*/
CGContextAddArc(contextRef, 180, 300, 100, 0, M_PI*2, 0);
[[UIColor orangeColor] setStroke];//
[[UIColor purpleColor] setFill];;//填充颜色
CGContextSetLineWidth(contextRef, 10);
CGContextDrawPath(contextRef, kCGPathFillStroke);
三、绘制矩形
- (void)drawRectangle{
/*
*创建一个矩形区域
*/
CGRect rect = CGRectMake(50, 50, 100, 61.8);
/*
*将rect添加到图形上下文中
*/
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddRect(context, rect);
/*
*设定颜色,开始绘制
*/
[[UIColor redColor] setFill];
[[UIColor yellowColor] setStroke];
CGContextSetLineWidth(context, 3);
CGContextDrawPath(context, kCGPathFillStroke);
}
稍后再练习绘制文字和图片