iOS 图形绘制<一> 利用Quartz2D绘制直线

Quartz2D的API是纯C语⾔言的 Quartz2D的API来自于Core Graphics框架框架

数据类型和函数基本都以CG做为前缀函数

CGContextRef CGPathRef CGContextStrokePath(ctx);code

如何利用Quartz2D绘制东西到view上?继承

首先,得有图形上下文,由于它能保存绘图信息,而且决定着绘制到什么地方去渲染

其次,那个图形上下⽂必须跟view相关联,才能将内容绘制到view上面数据类型

⾃定义view的步骤:方法

(1)新建⼀个类,继承自UIView数据

(2)实现-(void)drawRect:(CGRect)rect⽅法.而后在这个⽅方法中 :样式

1)取得跟当前view相关联的图形上下文;文件

2)绘制相应的图形内容

3)利用图形上下文将绘制的全部内容渲染显示到view上面

首先绘制直线:首先须要在工程中导入 <CoreGraphics/CoreGraphics.h>的头文件。

- (void)drawRect:(CGRect)rect {
    // Drawing code
    // 1.取得和当前视图相关联的图形上下文(由于图形上下文决定绘制的输出目标)/
    // 若是是在drawRect方法中调用UIGraphicsGetCurrentContext方法获取出来的就是Layer的上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2.绘图(绘制直线), 保存绘图信息
    // 设置起点
    CGContextMoveToPoint(ctx, 30, 100);
    //设置终点
    CGContextAddLineToPoint(ctx, 300, 300);
    
    
    //2. 设置绘图的状态
    //设置线条的颜色
//    CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1);//第一种
    [[UIColor blueColor]set];//第二种
    //线条宽度
    CGContextSetLineWidth(ctx, 12);
    //设置线条起点终点为圆角样式
    CGContextSetLineCap(ctx, kCGLineCapRound);
    //设置线条的转角的样式为圆角
    CGContextSetLineJoin(ctx, kCGLineJoinRound);
    //3. 渲染(绘制一条空心的线)
    CGContextStrokePath(ctx);
    //注意线条不能渲染为实心的
//    CGContextFillPath(ctx);
}
相关文章
相关标签/搜索