2017-09-12 1 views
0

Wie kann ich einen gestrichelten Rand in bestimmten Seite der UIView nur hinzufügen? Haben Bezug auf Dashed line border around UIView Link, aber ich bin irgendwie verwirrt, während der Pfad für alle Kanten eines view.ok so, das ist mein Code zum Hinzufügen eine gerade Linie Grenze insbesondere Seite einer Ansicht:Wie füge ich eine gestrichelte Umrandung für eine bestimmte Kante einer UIView hinzu?

 I want this as my output screen

func addRightBorder(with color: UIColor, andWidth borderWidth: CGFloat,view:UIView) { 

      let border = UIView() 
      border.backgroundColor = color 
      border.autoresizingMask = [.flexibleHeight, .flexibleLeftMargin] 
      border.frame = CGRect(x: view.frame.size.width - borderWidth, y: 0, width: borderWidth, height: view.frame.size.height) 

      //border.addDashedLine(color: UIColor.red) 
      border.addDashedLine(color: UIColor.red) 
      view.addSubview(border) 
     }* 

Wie kann ich das gleiche erreichen, aber für gestrichelte/gepunktete Linien?

Antwort

1

In einer meiner App brauchte ich auch eine ähnliche Sache und ich erstellte UIView Extension.

einen Blick auf mein Code-Schnipsel Nehmen

extension UIView { 
func removeDashedLine() { 
    _ = layer.sublayers?.filter({ $0.name == "DashedTopLine" }).map({ $0.removeFromSuperlayer() }) 
} 

func addDashedLine(_ path: UIBezierPath ,pattern : [NSNumber] = [1, 5], color: UIColor = UIColor.red) { 

    self.backgroundColor = UIColor.clear 

    let shapeLayer: CAShapeLayer = CAShapeLayer() 
    let frameSize = self.frame.size 
    let shapeRect = CGRect(x: 0, y: 0, width: frameSize.width, height: frameSize.height) 

    shapeLayer.name = "DashedTopLine" 
    shapeLayer.frame = shapeRect 
    //shapeLayer.position = CGPoint(x: frameSize.width/2, y: frameSize.height/2) 
    shapeLayer.fillColor = UIColor.clear.cgColor 
    shapeLayer.strokeColor = color.cgColor 
    shapeLayer.lineWidth = 1 
    shapeLayer.lineJoin = kCALineJoinRound 
    shapeLayer.lineDashPattern = pattern 

    shapeLayer.path = nil 
    shapeLayer.path = path.cgPath 
    self.layer.insertSublayer(shapeLayer, at: 0) 

} 
} 

Es kann nicht genau das tun, was Sie wollen, aber Sie sollten

+0

bei der Festlegung der Weg helfen, muss ich den Weg für nur eine Seite zu ziehen die Ansicht .. –

+0

Meine Lösung ist für den gestrichelten Rahmen, müssen Sie übergeben UIBezierPath, wo Sie Strich – Abhishek

+0

meine Frage bearbeitet .. das Bild hinzugefügt werden soll. bitte überprüfen Sie –

Verwandte Themen