打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IOS开发之Quart绘图方法简介

在我们刚刚接触Quertz 2D的时候,很重要的一点是:绘图是在图形的上下文进行的。每一个视图都有关联的上下文。

所以如果在某个视图中绘图,我们要检索当前的上下文

CGContextRef ctx =UIGraphicsGetCurrentContext();   

//检索当前上下文,绘图的每一个视图都有相关联的上下文,之后将此上下文传递给core graphics绘图函数来绘制 

CGContextSetLineWidth(ctx, 3.0);           //设置直线的像素为2;

CGContextSetStrokeColorWithColor(ctx, [UIColor greenColor].CGColor);       //指定笔画颜色为绿色;

需要注意的是在绘图操作中有两种不同的颜色设置:

笔画颜色用于绘制直线或者说形状的轮廓(圆形方形等)

填充颜色用于填充形状(里面)

CGContextMoveToPoint(ctx, 0.0f, 0.0f);      //直线的起点

     CGContextAddLineToPoint(ctx,100, 100); //直线终点,调用这个函数的时候是将这个不可见的笔画移动到新的位置,但是并没有绘制任何内容。

     CGContextStrokePath(ctx); //这个函数绘制直线。

  1. CGContextSetRGBFillColor /CGContextSetFillColorWithColor   //填充颜色   
  2. CGContextSetRGBStrokeColor /CGContextSetStrokeColorWithColor //笔画颜色   
  3. CGContextSetLineWidth    //线宽度



绘图的另一个重要属性是:颜色

在平常的开发应用中,我们设置颜色一般都用UIColor,但是在Quertz 2D中我们不能直接调用UIColor对象,但是UIColor中包含了CGColor属性

@property(nonatomic,readonly) CGColorRef CGColor; 所以我们在设置颜色的时候可以运用[UIColor blueColor].CGColor

上面简单介绍了绘制线以及CGColor,但是如果需要我们用Core Graphics操作CGImage怎么办呢。这个时候我们需要指定一个CGPoint来确定图片的左上角或者指定一个CGRect来框住图像,并很据需要调整图像的大小时期适合该框

CGPoint drawPoint = CGPointMake(100.0f, 11.0f);

[image drawAtPoint:drawPoint];


绘制形状:

绘制椭圆形: CGRect rect = CGRectMake(0, 0, 100, 100);

    CGContextAddEllipseInRect(ctx, rect);

    CGContextDrawPath(ctx,kCGPathFillStroke);


CGContextAddRect(CGContextRef c, CGRect rect)

CGContextAddRects(CGContextRef c,const CGRect rects[],size_t count];

CGContextAddLines(CGContextRef c,const CGPoint points[],size_t count];

CGContextAddEllipseInRect(CGContextRef context,CGRect rect)

CGContextAddArc

CGContextAddArcToPoint

CGContextAddPath(CGContextRef context,CGPathRef path)



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
iOS开发UI篇—Quartz2D使用(图形上下文栈)
IOS Quartz 2D 学习(2)
同一个页面多个CALayer重绘的办法[原创]
Swift之你应该懂点Core Graphics (长篇高能)
IOS绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形
iOS开发中Quartz2D的基本使用方式举例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服