码迷,mamicode.com
首页 > 移动开发 > 详细

iOS使用Core Graphics和UIBezierPath绘画

时间:2016-01-03 18:25:44      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

通过UIView的子类的- (void)drawRect:(CGRect)rect 函数可用对视图进行重新绘画;

要重新绘画可以通过Core Graphics和UIBezierPath来实现。

1.通过Core Graphics函数来绘画

首先要通过UIGraphicsGetCurrentContex()函数获取当前绘画上下文;

然后设定起点,增加线到一个点,,,,,闭合,例如下面:

    //获取当前绘画上下文
    CGContextRef context= UIGraphicsGetCurrentContext();
    //设定绘画的起点,如果要绘制的部分超出当前绘画上下文的边界frame,超出部分会被剪切
    CGContextMoveToPoint(context, -20, -10);
    //增加一条线到点100,200
    CGContextAddLineToPoint(context, 100, 200);
    CGContextAddLineToPoint(context, 0, 200);
    //闭合线到起点
    CGContextClosePath(context);
    //这里是描边,这里不可以缺少,否则绘画不起作用,之前的操作看起来更像是为下面的绘制做准备,只有下面这一步执行了才会成功
    CGContextStrokePath(context);

效果图:

技术分享

2.NSStirng,UIImage,可以直接在当前上下文绘制

    UIImage * card = [UIImage imageNamed:@"cardback"];
    [card drawAtPoint:CGPointMake(-10, -10)];
    [@"hello CGcontext" drawAtPoint:CGPointMake(10, 220) withAttributes:nil];

效果图:

技术分享

 

3.UIBezierPath 绘画

    UIBezierPath * path = [[UIBezierPath alloc] init];
    [path moveToPoint:CGPointMake(10, 10)];
    [path addLineToPoint:CGPointMake(10, 100)];
    [path addLineToPoint:CGPointMake(200, 100)];
    [path closePath];
    //这里是描边,这里不可以缺少,否则绘画不起作用,之前的操作看起来更像是为下面的绘制做准备,只有下面这一步执行了才会成功
    [path stroke];

UIBezierPath和Core Graphics函数绘制差不多,只不过不用当前上下文就可以直接绘制;一般情况下都是使用UIBezierPath来绘制,

只有在UIBezierPath不能实现时才用Core Graphics函数。

效果图:

技术分享

 

iOS使用Core Graphics和UIBezierPath绘画

标签:

原文地址:http://www.cnblogs.com/panxiaochun/p/5096815.html

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