Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. let pathLayer = CAShapeLayer()
  2. pathLayer.strokeColor = UIColor.blue.cgColor
  3. pathLayer.lineWidth = 3.0
  4. pathLayer.fillColor = UIColor.clear.cgColor
  5. self.layer.addSublayer(self.pathLayer)
  6.  
  7. let path = PathCreator.createPath()
  8.  
  9. let dashes: [CGFloat] = [5.0, 2.0]
  10. path.setLineDash(dashes, count: dashes.count, phase: 0.0)
  11. path.lineCapStyle = .round
  12. path.stroke()
  13. pathLayer.path = path.cgPath
  14. pathLayer.lineDashPattern = [5.0, 2.0]
  15. pathLayer.lineDashPhase = 0
  16.  
  17. PathCreator {
  18. func createPath(resultPoints: [CGPoint]) -> UIBezierPath {
  19. let path = UIBezierPath()
  20. for i in 0..<(resultPoints.count-1) {
  21. if resultPoints[i] is CircleCenterPoint {
  22. continue
  23. }
  24. if resultPoints[i] is ArcEndPoint {
  25. path.move(to: resultPoints[i].cg())
  26. path.addLine(to: resultPoints[i+1].cg())
  27. }
  28. if let arcStartPoint = resultPoints[i] as? ArcStartPoint,
  29. let circleCenterPoint = resultPoints[i+1] as? CircleCenterPoint,
  30. let arcEndPoint = resultPoints[i+2] as? ArcEndPoint {
  31. path.addArc(withCenter: circleCenterPoint.cg(),
  32. radius: circleCenterPoint.radius,
  33. startAngle: arcStartPoint.arcStartAngle,
  34. endAngle: arcEndPoint.arcEndAngle,
  35. clockwise: circleCenterPoint.clockwise)
  36. } else {
  37. path.move(to: resultPoints[i].cg())
  38. path.addLine(to: resultPoints[i+1].cg())
  39. }
  40. }
  41. return path
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement