美文网首页首页投稿(暂停使用,暂停投稿)
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