美文网首页首页投稿(暂停使用,暂停投稿)
ios 绘制虚线 CGContextSetLineDash函数的

ios 绘制虚线 CGContextSetLineDash函数的

作者: Holly_9f63 | 来源:发表于2017-08-21 16:13 被阅读0次

     画虚线需要用到的函数:CG_EXTERN void CGContextSetLineDash(CGContextRef cg_nullable c, CGFloat phase,const CGFloat * __nullable lengths, size_t count)

    CGContextRef currentContext = UIGraphicsGetCurrentContext();

    phase 参数表示在第一个虚线绘制的时候跳过多少个点

    lengths – 指明虚线是如何交替绘制

    count – lengths数组的长度

    - (void)drawRect:(CGRect)rect{

    [super drawRect:rect];

    if (rect.size.height>1) {

    CGContextRef currentContext = UIGraphicsGetCurrentContext();

    //设置虚线颜色

    CGContextSetStrokeColorWithColor(currentContext, CELLSEPEPTERCOLOT.CGColor);

    //设置虚线宽度

    CGContextSetLineWidth(currentContext, 1);

    //设置虚线绘制起点

    CGContextMoveToPoint(currentContext, 0, 0);

    CGContextAddLineToPoint(currentContext, 0 , self.frame.size.height);

    //设置虚线排列的宽度间隔:下面的arr中的数字表示先绘制3个点再跳过1个点

    CGFloat arr[] = {4,2};

    //下面最后一个参数“2”代表排列的个数。

    CGContextSetLineDash(currentContext, 2, arr, 2);

    CGContextDrawPath(currentContext, kCGPathStroke);

    }

    else if (rect.size.width>1){

    // Drawing code

    CGContextRef context=UIGraphicsGetCurrentContext();//获取绘图用的图形上下文

    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);//填充色设置成

    CGFloat lengths[] = {4};

    CGContextSetLineDash(context, 4, lengths,1);

    CGContextFillRect(context,self.bounds);//把整个空间用刚设置的颜色填充

    //上面是准备工作,下面开始画线了

    CGContextSetStrokeColorWithColor(context, CELLSEPEPTERCOLOT.CGColor);//设置线的颜色

    CGContextMoveToPoint(context,0,0);//画线的起始点位置

    CGContextAddLineToPoint(context,self.frame.size.width,0);//画第一条线的终点位置

    CGContextStrokePath(context);//把线在界面上绘制出来

    }

    }

    注:lengths的值{5,2}表示先绘制5个点,再跳过2个点,如此反复

    如果把lengths值改为{10, 5, 10},则表示先绘制10个点,跳过5个点,绘制10个点,跳过10个点,再绘制5个点,如此反复,count的值等于lengths数组的长度

    相关文章

      网友评论

        本文标题:ios 绘制虚线 CGContextSetLineDash函数的

        本文链接:https://www.haomeiwen.com/subject/tuthdxtx.html