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]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容