码迷,mamicode.com
首页 > 其他好文 > 详细

Quartz2D的简单使用概述(一)

时间:2016-07-23 21:20:59      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:quartz2d   简单的图形绘制   

        很久没有更新博文,今天把之前就想研究的quartz2D看了下,了解了些简单的作画方法,赶紧记录下来。学习Quartz2D的主要目的是为了以后更加方便的自定义一些界面控件时用到,毕竟大部分app都有个性化的定制界面。以下纪录一些常用的简单作图方法。

        想要自定义的控件基本都是继承自UIView,然后重写其drawRect方法。Quartz2D的方法都是纯c的,所有通用的步骤都是先获取上下文,然后再进行内部自定义,最后渲染,而且它的自带函数多半都是CGContext开头的:

        1.获取上下文

        CGContextRef ctx = UIGraphicsGetCurrentContext();

        2.进行自定义做图

        ...具体方法在后面单个举例

        3.渲染(针对不同情况,进行不同的渲染)

        CGContextStrokePath(ctx);    //空心

        CGContextFillPath(ctx);         //实心


举例1:画直线


        //获取上下文

        CGContextRef ctx = UIGraphicsGetCurrentContext();

        //设置起止点

        CGContextMoveToPoint(ctx,20,100);         //起点

        CGContextAddLineToPoint(ctx,50,150);    //终点

        [[UIColor redColor] set];    //设置绘制的颜色


         CGContextSetLineCap(ctx,kCGLineCapRound);    //起止点的样式(圆形)

        CGContextSetLineJoin(ctx,kCGLineJoinRound);    //转角点的样式(圆形)

        

        //最关键的一步-----渲染

        CGContextStrokePath(ctx);    //要注意,线条不要渲染为实心的 


举例2:画三角形


        重复的方法这里不写了,仍然是先获取上下文,设置起点,第一个转折点,终点,最后再回到起点即可。

        CGContextMoveToPoint(ctx,20,100);         //起点

        CGContextAddLineToPoint(ctx,100,100);  //转折点

        CGContextAddLineToPoint(ctx,50,150);    //终点

        CGContextAddLineToPoint(ctx,20,100);    //回到起点

当然还有自带的封闭方法可以调用:

        CGContextClosePath(ctx);                          //会自动将起点和终点连接起来


举例3:画矩形

        //专用方法

        CGContextAddRect(ctx,CGRectMake(100,100,100,80));

        然后设置一些基本的属性后就可以渲染了,既可以渲染成空心,也可以是实心


举例4:画圆形

        //专用方法(其实也是画椭圆的方法)

        CGCoontextAddArc(ctx,100,100,50,0,2*M_Pi,0);

        //参数要注意下:

        参数2和3:圆心坐标

        参数4:圆的半径

        参数5:开始绘制的角度

        参数6:结束绘制的角度

        参数7:绘制的方向(0顺时针,1逆时针)

        可以渲染成空心,也可以是实心


举例5:画椭圆

        //专用方法

        CGContextAddEllipseInRect(ctx,CGRectMake(100,100,50,60));

        说明一下,这个方法既可以用来画椭圆,也可以用来画圆,宽高不同为椭圆,相同即为圆。


举例5:画圆弧

        //这里使用的是画圆的方法

        CGCoontextAddArc(ctx,100,100,50,M_Pi_2,M_Pi,0);

        //然后调用连接起止点的方法即可

        CGContextClosePath(ctx);


举例6:画饼形

        //画饼形要先画一条直线,然后使用这条直线的长度画圆即可

        CGContextMoveToPoint(ctx,100,100);

        CGContextAddLineToPoint(ctx,100,150);

        // 画圆

        CGCoontextAddArc(ctx,100,100,50,M_Pi_2,M_Pi,0);

        //最后渲染即可


        这里要总结的说一点:所有的绘制过程必须写在获取上下文之后和渲染之前,这是标准的绘制过程。对于不同的需求,采取不同的渲染(空心和实心)。











Quartz2D的简单使用概述(一)

标签:quartz2d   简单的图形绘制   

原文地址:http://11572149.blog.51cto.com/11562149/1829140

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!