Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let pathLayer = CAShapeLayer()
- pathLayer.strokeColor = UIColor.blue.cgColor
- pathLayer.lineWidth = 3.0
- pathLayer.fillColor = UIColor.clear.cgColor
- self.layer.addSublayer(self.pathLayer)
- let path = PathCreator.createPath()
- let dashes: [CGFloat] = [5.0, 2.0]
- path.setLineDash(dashes, count: dashes.count, phase: 0.0)
- path.lineCapStyle = .round
- path.stroke()
- pathLayer.path = path.cgPath
- pathLayer.lineDashPattern = [5.0, 2.0]
- pathLayer.lineDashPhase = 0
- PathCreator {
- func createPath(resultPoints: [CGPoint]) -> UIBezierPath {
- let path = UIBezierPath()
- for i in 0..<(resultPoints.count-1) {
- if resultPoints[i] is CircleCenterPoint {
- continue
- }
- if resultPoints[i] is ArcEndPoint {
- path.move(to: resultPoints[i].cg())
- path.addLine(to: resultPoints[i+1].cg())
- }
- if let arcStartPoint = resultPoints[i] as? ArcStartPoint,
- let circleCenterPoint = resultPoints[i+1] as? CircleCenterPoint,
- let arcEndPoint = resultPoints[i+2] as? ArcEndPoint {
- path.addArc(withCenter: circleCenterPoint.cg(),
- radius: circleCenterPoint.radius,
- startAngle: arcStartPoint.arcStartAngle,
- endAngle: arcEndPoint.arcEndAngle,
- clockwise: circleCenterPoint.clockwise)
- } else {
- path.move(to: resultPoints[i].cg())
- path.addLine(to: resultPoints[i+1].cg())
- }
- }
- return path
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement