之前寫了一篇畫虛線的文章淮蜈,只是做了效果哪工,并沒有對其畫的過程原來深刻理解奥此,當時只是為了業(yè)務需求。今天剛剛好遇到群里有人問了雁比,回頭又重新理解了一下稚虎。
群里朋友 需求是彩色虛線。效果如圖
完整代碼如下:
UIImageView *iView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 20)];
[self.view addSubview:iView];
UIGraphicsBeginImageContext(iView.frame.size); //參數size為新創(chuàng)建的位圖上下文的大小
[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的代碼得到兩張?zhí)摼€圖
把它們合并到一起 就變成了上面的彩色虛線啦蜕径。
完整demo下載地址 :點擊打開鏈接