Quartz2D-02.利用Quartz画基本形状
2015-07-27 22:25
363 查看
1.利用Quartz2D画线
画两条平行的线- (void)drawRect:(CGRect)rect{ // 1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.画线 // 画平行的不同颜色和线宽的线 // 2.1第一条线 // 2.1.1设置线宽 CGContextSetLineWidth(ctx, 10); // 2.1.2设置线颜色 CGContextSetRGBStrokeColor(ctx, 1, 1, 0, 1); // 2.1.3设置转折点样式 /* enum CGLineJoin { kCGLineJoinMiter, 默认尖尖的 kCGLineJoinRound, 圆弧 kCGLineJoinBevel 削平 }; */ CGContextSetLineJoin(ctx, kCGLineJoinRound); // 设置线条头尾部样式 /* enum CGLineCap { kCGLineCapButt, 默认样式 kCGLineCapRound, 圆条样式 kCGLineCapSquare 矩形样式 }; */ CGContextSetLineCap(ctx, kCGLineCapRound); // 2.1.4添加起始点 CGContextMoveToPoint(ctx, 10, 100); // 2.1.5画线 CGContextAddLineToPoint(ctx, 150, 100); CGContextAddLineToPoint(ctx, 50, 200); // 2.1.6显示线条 CGContextStrokePath(ctx); // 2.2第二条线 // 2.2.1设置颜色和线宽 CGContextSetLineWidth(ctx, 20); CGContextSetRGBStrokeColor(ctx, 0, 0, 1, 1); // 2.2.2移动到新的起始点 CGContextMoveToPoint(ctx, 10, 150); // 2.2.3画线 CGContextAddLineToPoint(ctx, 150, 150); // 3.显示到View上 CGContextStrokePath(ctx);//空心路径渲染 }
2.利用Quartz2D画三角形
画三角形- (void)drawRect:(CGRect)rect{ // 1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.画三角形 // 添加起始点 CGContextMoveToPoint(ctx, 10, 10); // 画线 CGContextAddLineToPoint(ctx, 100, 100); // 画线 CGContextAddLineToPoint(ctx, 10, 150); //结束路径,自动闭合 // CGContextAddLineToPoint(ctx, 10, 10); CGContextClosePath(ctx); // 3.显示到View上 // CGContextStrokePath(ctx);//空心路径渲染 CGContextFillPath(ctx);// 实心路径渲染 }
3.利用Quartz2D画矩形
画矩形- (void)drawRect:(CGRect)rect{ // 1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.画矩形 CGContextAddRect(ctx, CGRectMake(10, 10, 200, 100)); // 3.显示到View上 CGContextStrokePath(ctx);//空心路径渲染 }
4.利用Quartz2D画圆
画圆- (void)drawRect:(CGRect)rect{ // 1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.画圆 CGContextAddEllipseInRect(ctx, CGRectMake(10, 10, 100, 100)); // 画椭圆 // CGContextAddEllipseInRect(ctx, CGRectMake(10, 120, 150, 100)); // 3.显示到View上 CGContextStrokePath(ctx);//空心路径渲染 }
5.利用Quartz2D画弧
画弧- (void)drawRect:(CGRect)rect{ // 1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.画圆弧 /* x/y: 圆心 radius:半径 startAngle:起始角度 endAngle:结束角度 clickwise:0 顺时针,1 逆时针 */ // 圆 // CGContextAddArc(ctx, 30, 30, 20, 0, M_PI * 2, 1); // 半圆 // CGContextAddArc(ctx, 100, 100, 50, 0, M_PI, 0); // 3/4圆 // CGContextAddArc(ctx, 100, 100, 50, M_PI_2, M_PI, 1); // CGContextAddArc(ctx, 100, 100, 50, M_PI, M_PI_2, 0); // 1/4圆 // CGContextAddArc(ctx, 100, 100, 50, M_PI_2, M_PI, 0); // 1/4扇形 CGContextAddArc(ctx, 100, 100, 50, M_PI_2, M_PI, 0); CGContextAddLineToPoint(ctx, 100, 100); CGContextClosePath(ctx); // 3.显示到View上 CGContextStrokePath(ctx);//空心路径渲染 // CGContextFillPath(ctx);//实心路径渲染 }
相关文章推荐
- Foundation框架 - 集合
- Android原生下拉刷新SwipeRefreshLayout实践
- Java中isAssignableFrom()方法与instanceof()方法用法
- 腾讯笔试_天猫魔盒(转载)
- leetcode 241 Different Ways to Add Parentheses
- 小白学开发(iOS)OC_类的本质(2015-07-27)
- Java拆解字符串(包括中文)
- 参数服务器在分布式深度学习的应用
- python获取内存和cpu利用率记录日志文件
- js 操作 table
- 类设计回顾
- 快速排序
- Lintcode 比较字符串
- Scala学习第一天 scala开发环境搭建和helloword解析
- 面试:实现内存复制函数
- 选择排序
- JAVA中静态代码块,构造代码块,构造函数的加载顺序
- nginx源码分析1———进程间的通信机制三(mmap)
- 我爱自然语言处理网文章汇总
- Android studio导入Eclipse项目,和一些错误的解决