>  기사  >  데이터 베이스  >  Quartz2D

Quartz2D

WBOY
WBOY원래의
2016-06-07 15:43:111368검색

Quartz2D中还有以CGPath开头的API,Path我们称之为路径,我们之前用Quartz2D画出的东西都是沿着一条路径去画的。 而这次我们将来学一下如何先将路径定好之后,再将路径放入图层上下文中。 Path的使用步骤: 1.创建路径CGMutablePathRef path = CGPathCreatMut

Quartz2D中还有以CGPath开头的API,Path我们称之为路径,我们之前用Quartz2D画出的东西都是沿着一条路径去画的。
而这次我们将来学一下如何先将路径定好之后,再将路径放入图层上下文中。

Path的使用步骤:
1.创建路径CGMutablePathRef path = CGPathCreatMutable();
2.通过CGPathAddLineToPoint、CGPathAddArc、CGPathAddEllipseInRect定义路径
3.将路径添加到上下文中,CGContextAddPath

主要代码:

<code><span>#import <span>"DrawSomePath.h"</span></span>

<span><span>@implementation</span> <span>DrawSomePath</span></span>

-(<span>void</span>)drawRect:(<span>CGRect</span>)rect{
    <span>//获得图形上下文</span>
    CGContextRef context = UIGraphicsGetCurrentContext();
    <span>//创建一个可变的路径</span>
    CGMutablePathRef path = CGPathCreateMutable();
    <span>//使用CGPath开头的方法创建要绘制的路径</span>


    CGPathAddEllipseInRect(path, <span>NULL</span>, CGRectMake(<span>10</span>, <span>10</span>, <span>100</span>, <span>100</span>));

    CGPathAddEllipseInRect(path, <span>NULL</span>, CGRectMake(<span>20</span>, <span>20</span>, <span>80</span>, <span>80</span>));

    CGPathAddEllipseInRect(path, <span>NULL</span>, CGRectMake(<span>30</span>, <span>30</span>, <span>60</span>, <span>60</span>));

    CGPathAddEllipseInRect(path, <span>NULL</span>, CGRectMake(<span>40</span>, <span>40</span>, <span>40</span>, <span>40</span>));

    CGPathAddEllipseInRect(path, <span>NULL</span>, CGRectMake(<span>50</span>, <span>50</span>, <span>20</span>, <span>20</span>));

    CGContextSetLineWidth(context, <span>5</span>);

    <span>//将路径加入上下文中</span>
    CGContextAddPath(context, path);
    <span>//开始渲染</span>
    CGContextStrokePath(context);
}

<span>@end</span></code>

运行效果:
Quartz2D
博客代码

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.