- 3
- 0
- 约5.39千字
- 约 14页
- 2017-10-22 发布于北京
- 举报
CoreGraphics框架一个让程序猿成为视觉设计师的框架
Core Graphics框架 : 一个让程序猿成为视觉设计师的框架Core Graphics简介说Core Graphics框架之前,我们首先要先说一下,在iOS中绘制图形的方式,其形式主要有三种.1.创建一个UI视图,并且使用drawRect:方法添加到Quartz 2D绘制代码中,也就是今天所要说的Core Graphics框架.2.使用Core Animation层,并且通过委托方法想Core Animation层提供图形内容.3.通过 OpenGL ES 渲染图形其结构图如下所示.从图中我们看到的是是不管使用者还是开发者最容易接触到的先是UIKit框架,然后再就是Core Graphics,Core Animation和OpenGL ES,Core Graphics,Core Animation这两个框架虽然我们没有用过,但是我们最少听过,但是OpenGL ES是什么鬼?OpenGL ES这个有点日后再议,今天主题不是它,而是我们的Core Graphics框架.Core Graphics其实是一套基于C语言的API框架,使用了Quartz作为绘图引擎。这也就意味着Core Graphics不是面向对象的。但是这句话对我们并无伤大雅.也就是然并卵~,我们只需要知道如何使用Core Graphics框架就好.下面我就对Core Graphics框架相关知识一一道来.CGContextRef (图形上下文)图形上下文,不要被它的名字吓到,其实你就可以理解为是一个画布,我们要绘制任何东西总要有个东西接受我们绘制的东西吧?所以CGContextRef就出现了,对于CGContextRef有几个注意点,iOS是允许新建CGContextRef的,但是我们通常不这么干,因为创建一个新的CGContextRef,但是性能和内存的使用上,效率是非常低的。所以我们会在drawRect:方法中直接获取当前View的CGContextRef.代码如下.//获取当前View的图形上下文CGContextRef contextRef = UIGraphicsGetCurrentContext();CGPath(路径)那么画板有了,我们是不是应该可以作图了?是的,但是如何才能确定出一个图形呢?不管是什么图形,首先我们要先确定它的边框,一旦确定了一个边框,我们就可以设置边框的各种绘图属性、边框内部区域的绘图属性、绘制边框还是内部区域等。这时候,CGPath就闪亮登场了.CGPath也就是路径信息,一开始如果没有接触过PS过的童鞋可能不知道路径到底是一个什么,通俗一点讲,不管你画什么图形,直线也好,多边形也罢,你的画笔都要从一个开始位置开始,然后 持续移动画笔,画出一个图形来.终止于一个结束点,如果画笔为无色,画笔划过的线可以理解为路径.当然了,现实中哪有无色的画笔?哈哈.好了言归正传.Core Graphics框架其实已给我们分装好了很多的调用函数,方便我们调用,我们就看几个常用调用函数.新建路径(常用于创建直线,也可以用直接拼接成多边形)CGMutablePathRef path = CGPathCreateMutable();新建矩形,rect是矩形的位置和大小信息,transform是仿射变换参数.CGPathCreateWithRect(CGRect rect,constCGAffineTransform * __nullable transform)新建圆,rect是圆的位置和大小信息,cornerWidth和cornerHeight是圆的半径,通过设置这两个参数,我们可以生成椭圆,transform是仿射变换参数.CGPathCreateWithRoundedRect(CGRect rect,CGFloat cornerWidth, CGFloat cornerHeight,constCGAffineTransform * __nullable transform)把路径添加到图形上下文中,c是图形上下文参数,path是路径参数.这里有一点要注意,如果你创建好路径,并且调用下面添加方法,我们在View页面上是看不到的路径,这是为什么呢?还记得我们前面说用无色的画笔做出的图形,可以理解为路径.就是因为没有涂色,所以看不见.CGContextAddPath(CGContextRef __nullable c,CGPathRef __nullable path)绘制路径函数,我们把路径的属性设置完成之后,就需要绘制函数,记住添加和绘制是两回事~~~.c代表着图形上下文.mode代表着填充类型.CGContextDrawPath(CGContextRef __nullable c, CGPathDrawingMode mode)释放删除路径
您可能关注的文档
- 70后管理者低调自律的中流砥柱.doc
- 7000小卖家围攻大卖家.doc
- 70平米简约风格装修效果图70平米家装图片.docx
- 75岁老太寻找50年前初恋称愿用千万资产养恋人.doc
- 75岁老太太的黄昏恋应该得到支持.doc
- 752紫外分光操作维护.doc
- 77平米玩转中西合璧时尚混搭.doc
- 784-双代号网络图时间参数的计算.doc
- 6成被调查孩子更爱爸爸陪称妈妈废话多.doc
- 7BUnit3名词所有格和物主代词练习.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
原创力文档

文档评论(0)