美文网首页
iOS 画虚线的重新理解

iOS 画虚线的重新理解

作者: 小灰是蜗牛君 | 来源:发表于2016-03-29 14:11 被阅读1433次

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


image

完整代码如下:

    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的代码得到两张虚线图


image
image

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

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

相关文章

  • iOS 画虚线的重新理解

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

  • iOS 画虚线

    通过Quartz2D画虚线

  • iOS 画虚线

    创建一个UIView的子类,在drawRect:(CGRect)rect里

  • iOS 画虚线

    在所需要的view上画一条虚线,重写下面的方法即可 -(void)drawRect:(CGRect)rect{ [...

  • IOS画虚线

    UIImageView*imageView1 = [[UIImageViewalloc]initWithFrame...

  • ios画虚线

    项目中用到了自己画的虚线,记录一下:

  • iOS 画虚线

    其中的一个方法 /***画虚线@param lineView 视图@param lineLength 单个虚线大小...

  • iOS 画虚线

    效果图

  • iOS 画线

    1.iOS画虚线边框layer.border 2.iOS画小于1px的细线 3.iOS 设置行距,并且计算有行距的...

  • iOS画虚线 画实线

    // 画虚线- (void)drawRect:(CGRect)rect { CAShapeLayer *dott...

网友评论

      本文标题:iOS 画虚线的重新理解

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