Swift 给View添加虚线

1. 实现

//MARK:- 绘制虚线
func drawDashLine(strokeColor: UIColor, lineWidth: CGFloat = 1, lineLength: Int = 10, lineSpacing: Int = 5, isBottom: Bool = true) {
    let shapeLayer = CAShapeLayer()
    shapeLayer.bounds = self.bounds
    shapeLayer.anchorPoint = CGPoint(x: 0, y: 0)
    shapeLayer.fillColor = UIColor.blue.cgColor
    shapeLayer.strokeColor = strokeColor.cgColor
    
    shapeLayer.lineWidth = lineWidth
    shapeLayer.lineJoin = kCALineJoinRound
    
    //每一段虚线长度 和 每两段虚线之间的间隔
    shapeLayer.lineDashPattern = [NSNumber(value: lineLength), NSNumber(value: lineSpacing)]
    
    let path = CGMutablePath()
    let y = isBottom == true ? self.layer.bounds.height - lineWidth : 0
    path.move(to: CGPoint(x: 0, y: y))
    path.addLine(to: CGPoint(x: self.layer.bounds.width, y: y))
    shapeLayer.path = path
    self.layer.addSublayer(shapeLayer)
}

2. 使用方法

let view1 = UIView(frame: CGRect(x: 50, y: 100, width: 300, height: 30))
view1.backgroundColor = UIColor.red
view1.drawDashLine(strokeColor: UIColor.black)
view.addSubview(view1)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我是互加计划的宣传员。各位看官,请看我写的《为互加计划鼓与呼》。 我宣传的策略是"普遍撒网,重点培养",重点培养的...
    三门峡743王恺阅读 251评论 8 13
  • 一、背景 针对公司现阶段各个产品线来讲,设计师在产品线做设计,设计输出的效率和设计质量都是不可或缺的,在保证质量的...
    司马西阅读 809评论 0 4
  • 起风了, 好像又要下雨了, 空气中的焦热也没了, 胖子都是潜力股, 最近老是看到别人的逆袭减肥, 可是,我却在爱上...
    在路上淡然阅读 174评论 0 0