Dashed line border around UIView

后端 未结 23 2408
粉色の甜心
粉色の甜心 2020-12-02 04:16

How do I add dashed line border around UIView.

Something Like this

\"\"

23条回答
  •  不知归路
    2020-12-02 04:46

    For Swift 5

    extension UIView {
        func addDashBorder() {
            let color = UIColor.white.cgColor
    
            let shapeLayer:CAShapeLayer = CAShapeLayer()
    
            let frameSize = self.frame.size
            let shapeRect = CGRect(x: 0, y: 0, width: frameSize.width, height: frameSize.height)
    
            shapeLayer.bounds = shapeRect
            shapeLayer.name = "DashBorder"
            shapeLayer.position = CGPoint(x: frameSize.width/2, y: frameSize.height/2)
            shapeLayer.fillColor = UIColor.clear.cgColor
            shapeLayer.strokeColor = color
            shapeLayer.lineWidth = 1.5
            shapeLayer.lineJoin = .round
            shapeLayer.lineDashPattern = [2,4]
            shapeLayer.path = UIBezierPath(roundedRect: shapeRect, cornerRadius: 10).cgPath
    
            self.layer.masksToBounds = false
    
            self.layer.addSublayer(shapeLayer)
        }
    }
    

    How to add

    vw.addDashBorder()
    

    How to remove border again

    let _ = vw.layer.sublayers?.filter({$0.name == "DashBorder"}).map({$0.removeFromSuperlayer()})
    

提交回复
热议问题