您的位置:首页 > 产品设计 > UI/UE

IOS(UI)_CGContextRef(绘画)

2016-03-02 11:45 471 查看

绘画

一般创建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]}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: