iOS Quartz2D简介
来源:互联网 发布:中国近10年gdp数据 编辑:程序博客网 时间:2024/05/29 07:33
转载自:http://www.cnblogs.com/xubaoaichiyu/p/5390493.html
Quartz2D 简介( 后续会有相关应用)
第一部分 绘制直线
代码示例:
- (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //开始画图 //设置直线起点 CGContextMoveToPoint(cxContext, 0, 20); //设置直线中点 CGContextAddLineToPoint(cxContext, 100, 20); //渲染 CGContextStrokePath(cxContext);}
效果图:
我们只用了四行代码就在view画出了一条直线,但是会觉得很枯燥,知识一条黑色的直线而已。
这样我们给他添点属性。
为了测试我首先只给他添加了颜色
示例代码:
- (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //开始画图 //设置直线起点 CGContextMoveToPoint(cxContext, 0, 20); //设置直线中点 CGContextAddLineToPoint(cxContext, 100, 20); //设置颜色 CGContextSetRGBStrokeColor(cxContext, 1, 0, 0, 1); //渲染 CGContextStrokePath(cxContext);}
效果图:
可以看到他变为了红色。
再分析我所添加的代码,可以猜想还有宽度等等。
下面我在添加一下宽度。
示例代码:
- (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //开始画图 //设置直线起点 CGContextMoveToPoint(cxContext, 0, 20); //设置直线中点 CGContextAddLineToPoint(cxContext, 100, 20); //设置颜色 CGContextSetRGBStrokeColor(cxContext, 1, 0, 0, 1); //设置宽度 CGContextSetLineWidth(cxContext, 10); //渲染 CGContextStrokePath(cxContext);}
效果图:
到这里简单绘制直线我们已经可以掌握了,但是如果多考率一下的话不难想到,如果我们现在花两条没有交点的线(我们可以通过CGContextAddLineToPoint继续添加线)该如何区分呢。
下面介绍一下路径path,我们可以通过它绘制线并且区分。
示例代码:
- (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //创建2条路径 CGMutablePathRef path1 = CGPathCreateMutable(); CGMutablePathRef path2 = CGPathCreateMutable(); //开始画图 //绘制第一条直线 CGPathMoveToPoint(path1, NULL, 0, 20); CGPathAddLineToPoint(path1, NULL, 100, 20); //绘制第二条直线 CGPathMoveToPoint(path2, NULL, 0, 50); CGPathAddLineToPoint(path2, NULL, 100, 50); //把路径添加到上下文中 CGContextAddPath(cxContext, path1); CGContextAddPath(cxContext, path2); //渲染 CGContextStrokePath(cxContext); //释放 因为是CG所以需要手动释放 CGPathRelease(path1); CGPathRelease(path2);}
效果图:
第二部分 绘制图形
示例代码:
- (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //绘制矩形 CGContextAddRect(cxContext, CGRectMake(20, 20, 100, 100)); //渲染 CGContextStrokePath(cxContext); }
效果图:
示例代码:
- (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //绘制圆 CGContextAddArc(cxContext, 100, 100, 25, 0, M_PI, 0); //渲染 CGContextStrokePath(cxContext); }
效果图:
第三部分 绘制文字
示例代码:
- (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //绘制矩形 CGContextAddRect(cxContext, CGRectMake(20, 20, 100, 100)); //渲染 CGContextStrokePath(cxContext); //文字内容 NSString *str = @"旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼旭宝爱吃鱼"; //将文字绘制到指定区域 自动换行 抽出范围后不显示 [str drawInRect:CGRectMake(20, 20, 100, 100) withAttributes:nil]; //将文字绘制到指定点// [str drawAtPoint:CGPointMake(0, 0) withAttributes:nil]; }
效果图:
第四部分 绘制图片
实例代码:
- (void)drawRect:(CGRect)rect{ UIImage * image = [UIImage imageNamed:@"2.jpg"]; //平铺 [image drawAsPatternInRect:self.bounds]; }
效果图:
示例代码:
- (void)drawRect:(CGRect)rect{ UIImage * image = [UIImage imageNamed:@"2.jpg"]; //拉伸 [image drawInRect:self.bounds]; }
效果图:
实例代码:
- (void)drawRect:(CGRect)rect{ UIImage * image = [UIImage imageNamed:@"2.jpg"]; //原图指定位置(图片的左上点) [image drawAtPoint:self.center]; }
效果图:
0 0
- iOS 之Quartz2D简介
- iOS Quartz2D简介
- iOS学习笔记-051.Quartz2D简介
- Quartz2D简介
- Quartz2D简介
- IOS:Quartz2D
- iOS-Quartz2D
- iOS-Quartz2D
- Quartz2D绘图简介
- 《Quartz2D——简介》
- iOS quartz2d饼图
- IOS学习之Quartz2D
- iOS开发-Quartz2D初识
- 15.ios之Quartz2D
- IOS Quartz2D 相关
- iOS Quartz2D - 画线段
- iOS Quartz2D - 画矩形
- iOS开发 - Quartz2D绘图
- Android文件三种上传方式总结
- 【BLE-CC2640】CC2640之广播MAC
- Quartz 2D 涂鸦
- 猫猫学IOS(三十四)UI之Quartz2D画画板的实现
- swift代码之路(三)AF网络请求
- iOS Quartz2D简介
- ubuntu 开发工具的安装 Ubuntu Make
- 【Leetcode】Integer Break
- 杂谈
- DOS常用命令篇
- Unity保存数据方式——PlayerPrefs
- iOS学习 - Quartz2D绘图学习
- visual studio 2012 安装闪退
- 图形和多媒体->6.1 Quartz 2D 简介