TZSpeedometer lets you display the meter with both positive & negative readings. It also supports marking to be shown inside or outside the gauge/meter. Highly customizable and easy to use.
To run the example project, clone the repo, and run
pod install from the Example directory first.
- Swift 4.2 and above
- iOS 11 and above
TZSpeedometer is available through CocoaPods. To install it, simply add the following line to your Podfile:
For Carthage, Add this to Cartfile
Please check code in Example Project to see how you can customize the TZSpeedometer.
For creating a new TZSpeedometer
let purpleMeter = TZSpeedometer(frame: CGRect(x: 0, y: 30, width: self.view.bounds.width, height: height)) purpleMeter.backgroundColor = .purple self.view.addSubview(purpleMeter))
You can also customize the UI of the TZSpeedometer using :
MeterAppearance. Some of the examples are below
var apperance = MeterAppearance() apperance.indicators.positiveIndicatorColor = UIColor.orange apperance.indicators.baseGirth = 25 apperance.indicators.indicatorGirth = 10 apperance.readingText.gaugeBackgroundColor = UIColor.brown apperance.readingText.font = UIFont(name: "Menlo", size: 22)! apperance.markingsText.textColor = .black apperance.markingsText.font = UIFont(name: "Menlo", size: 11)! purpleMeter.appearance = apperance }
You can also customize the maximum and minimum reading of the meter and provide scale delta using
let meter = Meter(minimumReading: -80, maximumReading: 100, unitText: "km/hr") meter.scaleDelta = 10 purpleMeter.meter = meter
Also, keep in mind, to use the delta which will divide the meter marking in a way that maximum and minimum reading are visible on the meter. Make sure
(maximumReading - minimumReading) / scaleDelta is Int.
(NOTE: unit Text label is not shown in the screenshot below. please check Example project for more options.)
Simply Set the reading on the meter.
purpleMeter.reading = 50
Tasin Zarkoob, [email protected]
TZSpeedometer is available under the MIT license. See the LICENSE file for more info.
Thanks to Ankit Sachan whose code in SemiCircular-Scale was helpful.