添加虚线 (Swift4)

///添加虚线(给一个View加虚线--虚线所在UIImageView高为5)

func addLineView(setView: UIView, color1: UIColor, color2: UIColor) {

    let imgV:UIImageView = UIImageView(frame: CGRect(x: 0, y: setView.frame

        .height - 5, width: setView.frame.width, height: 5))

    setView.addSubview(imgV)

    configLine(imgV: imgV, color1: color1, color2: color2)

   

}


///给高为5的View加虚线(虚线所在UIImageView高为5)

func addLineFor(iv: UIView, color1: UIColor, color2: UIColor) {

    let imgV:UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: iv.frame.width, height: 5))

    iv.addSubview(imgV)

    

    configLine(imgV: imgV, color1: color1, color2: color2)

}


private func configLine(imgV: UIImageView, color1: UIColor, color2: UIColor) {

    

    UIGraphicsBeginImageContext(imgV.frame.size)

    let context = UIGraphicsGetCurrentContext()

    context?.setLineCap(CGLineCap.square)

    

    let lengths: [CGFloat] = [10,30,]// 绘制 跳过 无限循环

    context?.setStrokeColor(color1.cgColor)//UIColor.red.cgColor

    context?.setLineWidth(2)

    context?.setLineDash(phase: 0, lengths: lengths)

    context?.move(to: CGPoint(x: 0, y: 3))

    context?.addLine(to: CGPoint(x: imgV.frame.width, y: 3))

    context?.strokePath()

    

    context?.setStrokeColor(color2.cgColor)//UIColor.blue.cgColor

    context?.setLineWidth(2)

    context?.setLineDash(phase: 0, lengths: lengths)

    context?.move(to: CGPoint(x: 20, y: 3))

    context?.addLine(to: CGPoint(x: imgV.frame.width, y: 3))

    context?.strokePath()

    imgV.clipsToBounds = true

    imgV.image = UIGraphicsGetImageFromCurrentImageContext()

}

你可能感兴趣的:(绘图)