Quartz2d从易到难全解析---绘制圆弧、圆、图片和文字

上一篇博客已经介绍了Quartz2d最基本的使用,那么本文会继续深入的解析Quartz2d。

1.绘制圆

/**

 *  绘制圆弧

 */

void drawCircle()

{

    //1.获得上下文

    CGContextRef ref = UIGraphicsGetCurrentContext();

    

    //2.绘制圆

    

    /**

     *  颜色设置的方法,下面三种方式选择一个

     */

    //面向对象方法设置颜色

    //设置空心的颜色

    [[UIColor blueColor] setStroke];

    //设置实心的颜色

    [[UIColor blueColor] setFill];

    //同时设置空心和实心的颜色

    [[UIColor blueColor] set];


    //quartz2dc语言方法设置空心颜色,下面两种方式选择一个

//    CGContextSetRGBStrokeColor(ref, <#CGFloat red#>, <#CGFloat green#>, <#CGFloat blue#>, <#CGFloat alpha#>)

    //用用quartz2dc语言方法设置实心颜色

//    CGContextSetRGBFillColor(<#CGContextRef context#>, <#CGFloat red#>, <#CGFloat green#>, <#CGFloat blue#>, <#CGFloat alpha#>)

    

    //设置线的宽度

    CGContextSetLineWidth(ref, 10);

    

    //添加椭圆(如果长度和宽度相等,那么就是圆)

    CGContextAddEllipseInRect(ref, CGRectMake(10, 10, 120, 120));

    

    //3.显示所绘制的东西

    CGContextStrokePath(ref);

}


2绘制圆弧

/**

 *  画圆弧

 */

void drawArc()

{

    CGContextRef ref = UIGraphicsGetCurrentContext();

    

    //画圆弧

    

    

    //CGContextRef c: 你的上下文

    //CGFloat x : 圆心的x坐标

    //CGFloat x : 圆心的y坐标

    //CGFloat radius: 半径长度

    //CGFloat startAngle: 起点到默认线的圆心角

    //CGFloat endAngle: 终点到默认线的圆心角

    //int clockwise 顺时针(0)还是逆时针(1)旋转

//    CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)

    CGContextAddArc(ref, 100, 100, 50, 0, M_PI, 1);

    

    //设置线段宽度

    CGContextSetLineWidth(ref, 10);

    

    CGContextStrokePath(ref);

}


3.绘制文字

/**

 *  画文字

 */

void drawText()

{

    //需要注意的是用面向对象的方式绘制文字,不需要上下文和显示出来那两个步骤!

    

    NSString * str = @"我是文字";

    //从一个点写文字

//    [str drawAtPoint:CGPointZero withAttributes:@{NSForegroundColorAttributeName:[UIColor greenColor],NSFontAttributeName:[UIFont systemFontOfSize:50]}];

    //从一个范围呢写文字(字典内写的值是颜色和大小)

    [str drawInRect:CGRectMake(0, 0, 200, 200) withAttributes:@{NSForegroundColorAttributeName:[UIColor greenColor],NSFontAttributeName:[UIFont systemFontOfSize:50]}];

    

}


4绘制图片

/**

 *  画图片

 */

void drawImage()

{

    //需要注意的是用面向对象的方式绘制图片,不需要上下文和显示出来那两个步骤!

    

    UIImage * image = [UIImage imageNamed:@"屏幕快照 2015-08-20 下午2.04.46"];

    //以一个点开始展示图片

    //[image drawAtPoint:CGPointZero];

    //以一个范围自动拉伸图片

    [image drawInRect:CGRectMake(0, 0, 200, 200)];

    //平铺图片,如果图片小于范围会出现几个图片

    [image drawAsPatternInRect:CGRectMake(0, 0, 200, 200)];

}

注意,上面有三种绘制图片的方式,三种方式不一样。请大家动手自己尝试。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值