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.
