subinspathilettu/sjheightscaleview
HeightScaleView is a customizable Swift UI component that provides an interactive height selection interface, similar to a physical measuring scale. It supports both metric (centimeters) and imperial (feet/inches) units, making it ideal for health, fitness, or onboarding apps whe
Features
- Interactive scrolling height selection (default: 120cm to 220cm, customizable)
- Visual scale with markings for each centimeter
- Prominent markings and labels for each 10cm increment
- Segmented control to toggle between metric (cm) and imperial (ft/in) units
- Haptic feedback when scrolling between values
- Formatted display of the current height value
- Easy integration and customization
Installation
Swift Package Manager
Add HeightScaleView to your Package.swift dependencies:
.package(url: "https://github.com/subinspathilettu/SJHeightScaleView", from: "1.0.0")And add it to your target dependencies:
.target(
name: "YourApp",
dependencies: [
.product(name: "HeightScaleView", package: "HeightScaleView"),
// ...
]
)Note: HeightScaleView depends on TinyConstraints for layout.
Usage
Basic Example
import HeightScaleView
// Create a height scale with default range (120-220cm)
let heightScale = HeightScaleView()
// Or with a custom range
let customHeightScale = HeightScaleView(minimumValueInCM: 100, maximumValueInCM: 200)
// Add to your view hierarchy
view.addSubview(heightScale)
// Set constraints (using TinyConstraints)
heightScale.edgesToSuperview()
// Access the current value
let selectedHeight = heightScale.currentValueUnit Switching
The view includes a segmented control to toggle between centimeters and feet/inches. All scale labels and the current value update automatically when the unit is changed.
Customization
- Minimum/Maximum Value:
- Set via the initializer: HeightScaleView(minimumValueInCM: 120, maximumValueInCM: 220)
- Appearance:
- Customize fonts, colors, and tick mark lengths by modifying the source.
- Haptic Feedback:
- Uses medium impact by default. You can adjust the feedback style in the source if needed.
Example
[HeightScaleView Screenshot]
[HeightScaleView Screenshot]
License
MIT License. See LICENSE for details.
Package Metadata
Repository: subinspathilettu/sjheightscaleview
Default branch: main
README: README.md