Guest User

Untitled

a guest
Jul 17th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. class ViewController: UIViewController {
  2.  
  3. override func viewDidLoad() {
  4. super.viewDidLoad()
  5.  
  6. let pieChart = PieChart(frame: CGRect(x: self.view.center.x, y: self.view.center.y, width: 300.0, height: 300.0))
  7. pieChart.backgroundColor = UIColor.clear
  8. self.view.addSubview(pieChart)
  9. pieChart.center = self.view.center
  10. }
  11.  
  12. }
  13.  
  14. class PieChart : UIView {
  15.  
  16. override func draw(_ rect: CGRect) {
  17.  
  18. drawSlice(rect, startPercent: 0, endPercent: 100, color: UIColor.gray)
  19. drawSlice(rect, startPercent: 30, endPercent: 65, color: UIColor.red)
  20. }
  21.  
  22. private func drawSlice(_ rect: CGRect, startPercent: CGFloat, endPercent: CGFloat, color: UIColor) {
  23. let center = CGPoint(x: rect.origin.x + rect.width / 2, y: rect.origin.y + rect.height / 2)
  24. let radius = min(rect.width, rect.height) / 2
  25. let startAngle = startPercent / 100 * CGFloat(Double.pi) * 2 - CGFloat(Double.pi)
  26. let endAngle = endPercent / 100 * CGFloat(Double.pi) * 2 - CGFloat(Double.pi)
  27. let path = UIBezierPath()
  28. path.move(to: center)
  29. path.addArc(withCenter: center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true)
  30. path.close()
  31. path.stroke()
  32. color.setFill()
  33. path.fill()
  34. }
  35. }
Add Comment
Please, Sign In to add comment