Core Graphics框架 一个让程序猿成为视觉设计师框架.docx

Core Graphics框架 一个让程序猿成为视觉设计师框架.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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框架相关知识一一道来. INCLUDEPICTURE \d http://upload-images.jianshu.io/upload_images/1396375-d02712a8f8eda5d7.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240 \* MERGEFORMATINET  CGContextRef (图形上下文) 图形上下文,不要被它的名字吓到,其实你就可以理解为是一个画布,我们要绘制任何东西总要有个东西接受我们绘制的东西吧?所以CGContextRef就出现了,对于CGContextRef有几个注意点,iOS是允许新建CGContextRef的,但是我们通常不这么干,因为创建一个新的CGContextRef,但是性能和内存的使用上,效率是非常低的。所以我们会在drawRect:方法中直接获取当前View的CGContextRef.代码如下. //获取当前View的图形上下文 CGContextRef contextRef = UIGraphicsGetCurrentContext(); INCLUDEPICTURE \d http://upload-images.jianshu.io/upload_images/1396375-b3bfcfc6046453ad.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1240 \* MERGEFORMATINET  CGPath(路径) 那么画板有了,我们是不是应该可以作图了?是的,但是如何才能确定出一个图形呢?不管是什么图形,首先我们要先确定它的边框,一旦确定了一个边框,我们就可以设置边框的各种绘图属性、边框内部区域的绘图属性、绘制边框还是内部区域等。这时候,CGPath就闪亮登场了.CGPath也就是路径信息,一开始如果没有接触过PS过的童鞋可能不知道路径到底是一个什么,通俗一点讲,不管你画什么图形,直线也好,多边形也罢,你的画笔都要从一个开始位置开始,然后 持续移动画笔,画出一个图形来.终止于一个结束点,如果画笔为无色,画笔划过的线可以理解为路径.当然了,现实中哪有无色的画笔?哈哈.好了言归正传.Core Graphics框架其实已给我们分装好了很多的调用函数,方便我们调用,我们就看几个常用调用函数. 新建路径(常用于创建直线,也可以用直接拼接成多边形) CGMutablePathRef path = CGPathCreateMutable(); 新建矩形,rect是矩形的位置和大小信息,transform是仿射变换参数. CGPathCreateWithRect(CGRect rect,const CGAffineTransform * __nullable transform) 新建圆,rect是圆的位置和大小信息,cornerWidth和cornerHeight是圆的半径,通过设置这两个参数,我们可以生成椭圆,transform是仿射变换参数. CGPathCreateWithRoundedRect(CGRect rect,CGFloat cornerWidth, CGFloat cornerHeight,const CGAffineTransform * _

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档