?畫虛線需要用到的函數(shù):CG_EXTERN void CGContextSetLineDash(CGContextRef cg_nullable c, CGFloat phase,const CGFloat * __nullable lengths, size_t count)
CGContextRef currentContext = UIGraphicsGetCurrentContext();
phase 參數(shù)表示在第一個虛線繪制的時候跳過多少個點(diǎn)
lengths – 指明虛線是如何交替繪制
count – lengths數(shù)組的長度
- (void)drawRect:(CGRect)rect{
[super drawRect:rect];
if (rect.size.height>1) {
CGContextRef currentContext = UIGraphicsGetCurrentContext();
//設(shè)置虛線顏色
CGContextSetStrokeColorWithColor(currentContext, CELLSEPEPTERCOLOT.CGColor);
//設(shè)置虛線寬度
CGContextSetLineWidth(currentContext, 1);
//設(shè)置虛線繪制起點(diǎn)
CGContextMoveToPoint(currentContext, 0, 0);
CGContextAddLineToPoint(currentContext, 0 , self.frame.size.height);
//設(shè)置虛線排列的寬度間隔:下面的arr中的數(shù)字表示先繪制3個點(diǎn)再跳過1個點(diǎn)
CGFloat arr[] = {4,2};
//下面最后一個參數(shù)“2”代表排列的個數(shù)益愈。
CGContextSetLineDash(currentContext, 2, arr, 2);
CGContextDrawPath(currentContext, kCGPathStroke);
}
else if (rect.size.width>1){
// Drawing code
CGContextRef context=UIGraphicsGetCurrentContext();//獲取繪圖用的圖形上下文
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);//填充色設(shè)置成
CGFloat lengths[] = {4};
CGContextSetLineDash(context, 4, lengths,1);
CGContextFillRect(context,self.bounds);//把整個空間用剛設(shè)置的顏色填充
//上面是準(zhǔn)備工作始苇,下面開始畫線了
CGContextSetStrokeColorWithColor(context, CELLSEPEPTERCOLOT.CGColor);//設(shè)置線的顏色
CGContextMoveToPoint(context,0,0);//畫線的起始點(diǎn)位置
CGContextAddLineToPoint(context,self.frame.size.width,0);//畫第一條線的終點(diǎn)位置
CGContextStrokePath(context);//把線在界面上繪制出來
}
}
注:lengths的值{5,2}表示先繪制5個點(diǎn),再跳過2個點(diǎn),如此反復(fù)
如果把lengths值改為{10, 5, 10}括享,則表示先繪制10個點(diǎn),跳過5個點(diǎn)窿凤,繪制10個點(diǎn)勺拣,跳過10個點(diǎn),再繪制5個點(diǎn),如此反復(fù)熙尉,count的值等于lengths數(shù)組的長度