参考博客
class TRDashLine: UIView {
override func drawRect(rect: CGRect) {
super.drawRect(rect)
// http://www.jianshu.com/p/265b9f6fb5f2
let context = UIGraphicsGetCurrentContext();
CGContextBeginPath(context);
CGContextSetLineWidth(context,1);//线宽度
CGContextSetStrokeColorWithColor(context,UIColor.rgb("d6d6d6").CGColor);
let lengths: [CGFloat] = [8,4] // 这是比较规则的虚线
// length 表示为: [A,B,C,D] 对应 (A,B,C,D,A,B,C,D,A,B ...) 循环,绘制的规则是从A开始,绘制A个单位长度的线,然后跳过B个单位长度的不绘制,再绘制C个长度的线,再跳过D个不绘制。。。
// 还要注意的是最后一个参数是数组的长度,如果数组是3位,而你传入2,则只有前两个数字是有效的。
CGContextSetLineDash(context,0, lengths,2);
let startPoint = CGPointMake(0, 0)
let endPoint = CGPointMake(Common.screen_width - self.x - 10.0, 0)
CGContextMoveToPoint(context,startPoint.x,startPoint.y);
CGContextAddLineToPoint(context,endPoint.x,endPoint.y);
CGContextStrokePath(context);
CGContextClosePath(context);
}
}

lengths:[8,4]

lengths:[15,7,3]
网友评论