iOS 画虚线的重新理解

这篇博客深入探讨了如何在iOS中实现虚线绘制,通过实例代码展示了彩色虚线的生成过程,强调了设置线条宽度和间隔的重要性。文章还提供了一个完整的demo下载链接,帮助读者更好地理解和应用。
摘要由CSDN通过智能技术生成

之前写了一篇画虚线的文章,只是做了效果,并没有对其画的过程原来深刻理解,当时只是为了业务需求。今天刚刚好遇到群里有人问了,回头又重新理解了一下。

群里朋友 需求是彩色虚线。效果如图


完整代码如下:

 UIImageView *iView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 20)];
    [self.view addSubview:iView];
    
    UIGraphicsBeginImageContext(iView.frame.size); //参数size为新创建的位图上下文的大小
    [iView.image drawInRect:CGRectMake(0, 0, iView.frame.size.width, iView.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapSquare); //设置线段收尾样式
    
    CGFloat length[] = {20,40}; // 线的宽度,间隔宽度
    CGContextRef line = UIGraphicsGetCurrentContext(); //设置上下文
    CGContextSetStrokeColorWithColor(line, [UIColor redColor].CGColor);
    CGContextSetLineWidth(line, 5); //设置线粗细
    CGContextSetLineDash(line, 0, length, 2);//画虚线
    CGContextMoveToPoint(line, 0, 20.0); //开始画线
    CGContextAddLineToPoint(line, self.view.frame.size.width, 20);//画直线
    CGContextStrokePath(line); //指定矩形线
    
    // 在line 中间的间隔里 再画一条不同颜色的间隔线
    CGContextRef line2 = UIGraphicsGetCurrentContext();
    CGContextSetStrokeColorWithColor(line2, [UIColor blackColor].CGColor);
    CGContextSetLineWidth(line2, 5);
    CGContextSetLineDash(line2, 0, length, 2);//画虚线
    CGContextMoveToPoint(line2, 30, 20.0); //开始画线line2 参数对象,X坐标,Y坐标
    CGContextAddLineToPoint(line2, self.view.frame.size.width, 20);
    CGContextStrokePath(line2);
    
    iView.image = UIGraphicsGetImageFromCurrentImageContext();

这一句 设置每段虚线的线条的宽度和间隔的宽度

CGFloat length[] = {20,40}; // 线的宽度,间隔宽度

分别注释掉line 和line2的代码得到两张虚线图




把它们合并到一起 就变成了上面的彩色虚线啦。


完整demo下载地址 :点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值