绘画
一般创建UIView时都要一个drawRect在下面被注释掉
现在把注释去掉
//覆盖drawRect方法,可以在此自定绘画 和 动画
- (void)drawRect:(CGRect)rect {
}
绘画
//覆盖drawRect方法,可以在此自定绘画 和 动画
- (void)drawRect:(CGRect)rect {
//一个不透明的Quartz 2D绘画环境,相当于一个画布,可以在上面任意绘画
CGContextRef context = UIGraphicsGetCurrentContext();
//设置画笔粗细
CGContextSetLineWidth(context, 1);
//设置画笔的颜色
CGContextSetRGBStrokeColor(context, 1, 1, 1, 1);
//设置填充颜色
CGContextSetRGBFillColor(context, 1, 0, 0, 1);
//画圆
CGContextAddArc(context, 100, 20, 15, 0, 2*M_PI, 0);
//绘制路径
CGContextDrawPath(context, kCGPathStroke);
//填充圆,无边框
CGContextAddArc(context, 150, 20, 15, 0, 2*M_PI, 1);
//绘制路径
/*
<#CGPathDrawingMode mode#>
kCGPathFill, //填充非绕数规则
kCGPathEOFill, //表示用奇偶规则
kCGPathStroke, //路径
kCGPathFillStroke, //路径填充
kCGPathEOFillStroke //表示描线
*/
CGContextDrawPath(context, kCGPathFillStroke);
//画线及弧线
CGContextMoveToPoint(context, 100, 80); //移到开始坐标
CGContextAddLineToPoint(context, 130, 80);
CGContextDrawPath(context, kCGPathStroke);
//画笑脸
//左边
CGContextMoveToPoint(context, 140, 80); //开始坐标p1
CGContextAddArcToPoint(context, 148, 68, 156, 80, 10);
CGContextStrokePath(context);
//右边
CGContextMoveToPoint(context, 160, 80);
CGContextAddArcToPoint(context, 168, 68, 176, 80, 10);
CGContextStrokePath(context);
//画矩形
CGContextStrokeRect(context, CGRectMake(100, 120, 10, 10));
CGContextFillRect(context, CGRectMake(120, 120, 10, 10));
//矩形并填充
CGContextSetLineWidth(context, 2);
CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor); //设置填充颜色
CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:34/255.0 green:199/255.0 blue:1 alpha:1].CGColor); //线框颜色
//画方框
CGContextAddRect(context, CGRectMake(140, 120, 60, 30));
CGContextDrawPath(context, kCGPathFillStroke);
//画扇形
//以10为半径围绕圆心指定角度扇形
CGContextMoveToPoint(context, 160, 180);
CGContextAddArc(context, 160, 180, 10, 0, M_PI/2, 1);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFillStroke);
//画椭圆
CGContextAddEllipseInRect(context, CGRectMake(200, 180, 60, 15));
CGContextDrawPath(context, kCGPathFillStroke);
//画贝塞尔曲线
//二次曲线
CGContextMoveToPoint(context, 120, 300);
CGContextAddQuadCurveToPoint(context, 190, 310, 120, 390); //设置贝塞尔曲线的控制点坐标和终点坐标
CGContextStrokePath(context);
//三次曲线
CGContextMoveToPoint(context, 200, 300);
CGContextAddCurveToPoint(context, 250, 280, 250, 400, 280, 300);
CGContextStrokePath(context);
//图片
UIImage *image = [UIImage imageNamed:@"xx1.jpg"];
[image drawInRect:CGRectMake(60, 400, 200, 200)];
//iOS7.0新加的API
NSString *text = @"Rick";
[text drawAtPoint:CGPointMake(100, 100) withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]}];
}