- (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);
}
本文介绍在iOS开发中使用Core Graphics库进行自定义视图绘制的方法,包括直线、贝塞尔曲线及弧形曲线的绘制技巧,并展示了如何设置线条的宽度、连接点样式等属性。
854

被折叠的 条评论
为什么被折叠?



