iOS 绘制虚线

参考博客

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]

你可能感兴趣的:(iOS 绘制虚线)