- (void)drawRect:(CGRect)rect
{
// 获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 描述路径
CGContextMoveToPoint(ctx, 50, 50);
CGContextAddLineToPoint(ctx, 100, 100);
CGContextAddLineToPoint(ctx, 100, 200);
// 设置线宽
CGContextSetLineWidth(ctx, 5);
// 设置线段连接点样式
/*
kCGLineJoinMiter,
kCGLineJoinRound,
kCGLineJoinBevel
*/
CGContextSetLineJoin(ctx, kCGLineJoinRound);
// 设置顶角样式
/*
kCGLineCapButt,
kCGLineCapRound,
kCGLineCapSquare
*/
CGContextSetLineCap(ctx, kCGLineCapRound);
// 渲染上下文
CGContextStrokePath(ctx);
}
2.
// 获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 描述路径
CGContextMoveToPoint(ctx, 50, 50);
CGContextAddLineToPoint(ctx, 100, 50);
// 另一个描述路径
CGContextMoveToPoint(ctx, 80, 60);
// 默认下一根线的起点就是上一根线的终点
CGContextAddLineToPoint(ctx, 100, 200);
// 设置绘图状态,一定要在渲染之前
// 设置颜色
[[UIColor redColor] setStroke];
// 设置线宽
CGContextSetLineWidth(ctx, 5);
// 设置线段连接点样式
/*
kCGLineJoinMiter,
kCGLineJoinRound,
kCGLineJoinBevel
*/
CGContextSetLineJoin(ctx, kCGLineJoinRound);
// 设置顶角样式
/*
kCGLineCapButt,
kCGLineCapRound,
kCGLineCapSquare
*/
CGContextSetLineCap(ctx, kCGLineCapRound);
// 渲染上下文
CGContextStrokePath(ctx);
3.
- (void)drawRect:(CGRect)rect
{
// 用贝塞尔
UIBezierPath *path = [UIBezierPath bezierPath];
// 描述路径
[path moveToPoint:CGPointMake(50, 50)];
[path addLineToPoint:CGPointMake(200, 200)];
// 设置path的属性
path.lineWidth = 5;
[[UIColor redColor] setStroke];
// 渲染
[path stroke];
/*======================*/
UIBezierPath *path1 = [UIBezierPath bezierPath];
[path1 moveToPoint:CGPointMake(0, 0)];
[path1 addLineToPoint:CGPointMake(30, 60)];
path1.lineWidth = 10;
[[UIColor orangeColor] set];
path1.lineJoinStyle = kCGLineJoinRound;
path1.lineCapStyle = kCGLineCapRound;
[path1 stroke];
}
4.弧形曲线
- (void)drawRect:(CGRect)rect
{
// 如何绘制曲线
// 获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 描述路径
CGContextMoveToPoint(ctx, 50, 50);
/*
CGFloat cpx: 控制点的X
CGFloat cpy: 控制点的y
*/
CGContextAddQuadCurveToPoint(ctx, 150, 20 , 250, 50);
// 渲染上下文
CGContextStrokePath(ctx);
}