Simple battery shaped UIView.
let batteryView = BatteryView(frame: smallRect) batteryView.level = 42 // anywhere in 0...100 batteryView.lowThreshold = 25 // battery fill becomes red if level is below this threshold batteryView.gradientThreshold = 50 // battery fill gradually changes from green to red below this thresholdBatteryShape(level: $level)The properties below can be set in Interface Builder, in code, or through a UIAppearance proxy (e.g., BatteryView.appearance().borderColor = .gray). When using SwiftUI you can set them in the BatteryShape initializer .
Colors:
batteryView.borderColor = .darkGray batteryView.highLevelColor = .green batteryView.lowLevelColor = .red batteryView.noLevelColor = .gray batteryView.noLevelText = "?" // shown over battery when the level is undefined or out of boundsBattery Shape:
batteryView.direction = .minXEdge // terminal facing left batteryView.terminalLengthRatio = 0.1 // relative to battery length batteryView.terminalWidthRatio = 0.4 // relative to battery width batteryView.borderWidth = 2.5 // default is batteryLength / 20 batteryView.cornerRadius = 5 // default is batteryLength / 10pod 'BatteryView'dependencies: [ .package(url: "https://github.com/yonat/BatteryView", from: "1.4.4") ]