view:
使用Core Graphics之前需要指定一个用于绘图的图形上下文(CGContextRef),这个图形上下文会在每个绘图函数中都会被用到。
- (void)drawRect:(CGRect)rect {
//一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画
CGContextRef context = UIGraphicsGetCurrentContext();
/**
* 中间是你要实现哪个图形的代码(可以参考下文)
*/
//关闭画布
CGContextRelease(context);
}
-
画圆
//画笔线的颜色:下面2种方法选其一
//CGContextSetRGBStrokeColor(context,1,1,1,1.0);
CGContextSetStrokeColorWithColor(context, UIColorFromRGB_10(160, 59, 64).CGColor);
//画圆并填充颜
//CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);//填充颜色
CGContextSetLineWidth(context, 3.0);//线的宽度
CGContextSetLineCap(context, kCGLineCapRound);
//x,y为圆点坐标,startAngle为开始的弧度,endAngle为 结束的弧度,clockwise 0为顺时针,1为逆时针
//startAngle为0默认是正90°方向的
CGContextAddArc(context, 60, 60, 40, -M_PI/2 , M_PI/2*3 * kProgress , 0); //添加一个圆
//kCGPathFill填充非零绕数规则,kCGPathEOFill表示用奇偶规则,kCGPathStroke路径,kCGPathFillStroke路径填充,kCGPathEOFillStroke表示描线,不是填充
CGContextDrawPath(context, kCGPathStroke); //绘制路径加填充kCGPathFillStroke -
画椭圆
CGRect aRect= CGRectMake(120, 20, 100, 60);
CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);
CGContextSetLineWidth(context, 3.0);
CGContextAddEllipseInRect(context, aRect); //参数:椭圆的坐标。
CGContextDrawPath(context, kCGPathStroke); -
画三角形
关键是选3个点,利用CGContextAddLines方法即可
CGPoint points[3];//坐标点
points[0] =CGPointMake(280, 90);//坐标1
points[1] =CGPointMake(220, 90);//坐标2
points[2] =CGPointMake(280, 20);//坐标3
CGContextAddLines(context, points, 3);//添加线
CGContextClosePath(context);//封起来
CGContextDrawPath(context, kCGPathFillStroke); -
画矩形
CGContextStrokeRect(context, CGRectMake(120, 120, 120, 20));
CGContextSetLineWidth(context, 3.0);
CGContextAddRect(context, CGRectMake(120, 120, 120, 20)); -
绘制虚线
CGFloat lengths[] = {10,10} 先画10个点再画10个点
CGContextBeginPath(context);
CGContextSetLineWidth(context, 2.0);
CGFloat lengths[] = {10,10};
CGContextSetLineDash(context, 0, lengths,2);
CGContextMoveToPoint(context, 10.0, 160);
CGContextAddLineToPoint(context, 240,160);
CGContextStrokePath(context);
CGContextClosePath(context);
本文持续更新,有问题欢迎指出
网友评论