A simple progress bar with customizable segments
Copy SegmentedProgressBar.swift and SegmentedProgressBarDelegate.swift into your project
change class of any UIView to SegmentedProgressBar.
If Interface Builder does not appear to be rendering any changes, you may have to enable ‘Automatically Refresh Views’ in the editor menu.
let progressBar = SegmentedProgressBar(frame: CGRect(x: 0,
                                                     y: 0,
                                                     width: self.view.frame.size.width,
                                                     height: 200))                         
self.view.addSubview(progressBar)                                                    
Edit any of the IBInspectable variables via Interface Builder
  progressBar.numberOfSegments: Int = 2
  progressBar.segmentWidth: CGFloat = 20
  progressBar.segmentHeight: CGFloat = 20
  progressBar.segmentColor: UIColor = .black
  progressBar.circularSegments: Bool = true //Only works when segmentWidth == segmentHeight
  progressBar.cornerRadius: CGFloat = 5
  progressBar.borderWidth: CGFloat = 2
  progressBar.borderColor: UIColor = .green
  
  progressBar.selectedIndex: Int = 0
  progressBar.selectedColor: UIColor = .blue
  progressBar.selectedBorderColor: UIColor = .red
  
  progressBar.lineWidth: CGFloat = 50 //Distance between segments
  progressBar.lineHeight: CGFloat = 3
  progressBar.lineColor: UIColor = .yellow
Conform to the SegmentedProgressBarDelegate to access the onProgressChanged(index: Int) function.
