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

2. Quartz2D 绘制直线

时间:2015-02-17 11:37:52      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

#import <UIKit/UIKit.h>

@interface MyView : UIView

@end
#import "MyView.h"

@implementation MyView

-(void) drawRect:(CGRect)rect{
    [self drawLine];
}

#pragma mark - 绘图方法
#pragma mark 绘制直线
-(void) drawLine{
    //提示:使用Ref声明的对象,不需要用*
    //1. 获取上下文 - UIView对应的上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    //2. 创建路径并设置路径(可变路径)
    CGMutablePathRef path =CGPathCreateMutable();
    //划线
    // 1)设置起始点
    CGPathMoveToPoint(path, NULL, 50, 50);
    // 2)设置中间点
    // 3)设置目标点
    CGPathAddLineToPoint(path, NULL, 200, 200);
    CGPathAddLineToPoint(path, NULL, 50, 200);

    // 4) 设置封闭路径
    // a) 直接指定目标点
    //CGPathAddLineToPoint(path, NULL, 50, 50);
    // b)使用关闭路径
    CGPathCloseSubpath(path);
    
    //3. 将路径添加到上下文
    CGContextAddPath(context, path);
    //4. 设置上下文属性(状态)
    /**
     设置线条颜色
     red 0 ~ 1.0 red / 255
     green 0 ~ 1.0 green / 255
     blue 0 ~ 1.0 blue / 255
     alpha 透明度 0 ~ 1.0
        0 - 完全透明
        1.0 ~ 完全不透明
     
     提示:1)使用RGB颜色设置时,最好不要同时指定RGB和alpha,性能损耗
          2) 默认线条和填充颜色都是黑色
     */
    CGContextSetRGBStrokeColor(context, 1.0, 0, 0, 1.0);
    CGContextSetRGBFillColor(context, 0, 1, 0, 1.0);
    //设置线条宽度
    CGContextSetLineWidth(context, 5.0f);
    //设置线条的顶点样式
    CGContextSetLineCap(context, kCGLineCapRound);
    //设置线条的链接点样式
    CGContextSetLineJoin(context, kCGLineJoinRound);
    //设置线条虚线样式
    /*
     虚线参数
     context:
     phase:相位、虚线起始位置,通常使用0,从都开始画
     lengths:长度数组
     count lengths:数组个数
     */
    CGFloat lengths[3] = {10,20,30};
    CGContextSetLineDash(context, 0, lengths, 3);
    
    //5. 绘制路径
    /**
     kCGPathStroke 画线(空心)
     kCGPathFill 填充(实心)
     kCGPathFillStroke 即画线又填充
     */
    CGContextDrawPath(context, kCGPathFillStroke);
    //6. 释放路径
    CGPathRelease(path);
}

@end

 

2. Quartz2D 绘制直线

标签:

原文地址:http://www.cnblogs.com/wlxm/p/4294971.html

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