RulerControl is a draggable, resizable UIControl that provides real world length measurement. It supports various units of length, but is most appropriate for measurements in centimeters or inches.
Set up plane with device ppi:
letdevice=Device() // Open source DeviceKit provides ppi iflet ppi = device.pointsPerInch {letplane=Plane(pointsPerUnit: ppi, unit:.inch) rulerControl.plane = plane rulerControl.baseUnit =.centimeter } rulerControl.addTarget(self, action: #selector(rulerChanged), for:.valueChanged) rulerControl.isContinuous =trueUse just like a slider:
rulerControl.addTarget(self, action: #selector(rulerChanged), for:.valueChanged)structDefaults{staticletthickness:CGFloat=15.0staticletcolor=UIColor.blue staticlethandleColor=UIColor.blue staticletbaseUnit:DistanceUnit=.centimeter staticlethashMarkColor=UIColor.white staticlethandleSize=CGSize(width:40.0, height:120.0)staticlethandleLineWidth:CGFloat=14.0staticletminimumLineLength:CGFloat=30.0 // Line segment never gets shorter than this staticletisContinuous=falsestaticletshowActual=true}