博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 图形绘制<一> 利用Quartz2D绘制直线
阅读量:7205 次
发布时间:2019-06-29

本文共 1206 字,大约阅读时间需要 4 分钟。

hot3.png

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

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

CGContextRef CGPathRef CGContextStrokePath(ctx);

如何利用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);}

转载于:https://my.oschina.net/onlysimple/blog/743559

你可能感兴趣的文章
python利用WMI监控windows状态如CPU、内存、硬盘
查看>>
大战设计模式【23】—— 原型模式
查看>>
js--webSocket入门
查看>>
支持国内版Office 365的PowerShell模块现已发布
查看>>
win7、win10进程pid4占用80端口的解决办法
查看>>
算法帖——用舞蹈链算法(Dancing Links)求解俄罗斯方块覆盖问题
查看>>
python之 数据类型判定与类型转换
查看>>
python学习笔记011——内置函数__module__、__name__
查看>>
centos6.5官方dvd做本地yum
查看>>
RESTful服务最佳实践
查看>>
机器学习处理流程、特征工程,模型设计实例
查看>>
查看已安装tensorflow版本
查看>>
Netty序章之BIO NIO AIO演变
查看>>
NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中
查看>>
[svc]samba服务搭建
查看>>
u-boot2011.09 u-boot.img 的流程跟踪
查看>>
博客搬迁说明
查看>>
[SF] Symfony 组件 BrowserKit 原理
查看>>
使用JNA,让java调用原生代码
查看>>
关于修改linux hostname的问题,尤其是redhat 7修改hostname的方式
查看>>