iOS 畫虛線的重新理解

之前寫了一篇畫虛線的文章,只是做了效果,并沒有對其畫的過程原來深刻理解,當時只是為了業務需求。今天剛剛好遇到群里有人問了,回頭又重新理解了一下。
群里朋友 需求是彩色虛線。效果如圖


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下載地址 :點擊打開鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容