A customizable horizontal scroll dial UI component for iOS apps, inspired by Instagram's interface.
HorizontalDial is an open-source iOS UI component that implements a horizontal scroll dial, similar to the one found in Instagram's app. It allows users to select numeric values by scrolling horizontally through a dial interface with customizable visual marks and range constraints. The component solves the need for an intuitive, visually engaging alternative to traditional sliders or pickers in iOS applications.
iOS developers building apps that require smooth, visually appealing value selection interfaces, particularly those aiming to replicate or adapt the Instagram-style dial interaction.
Developers choose HorizontalDial for its ease of integration via Storyboard or code, high customizability of visual properties, and direct inspiration from a widely recognized UI pattern. It saves development time compared to building a similar component from scratch while offering fine-grained control over appearance and behavior.
A horizontal scroll dial like Instagram.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The README lists numerous properties like markColor, markWidth, and centerMarkRadius, allowing precise control over the dial's appearance to match any design.
As shown in the storyboard screenshot, HorizontalDial can be added and configured directly in Interface Builder, speeding up UI development.
Protocols such as horizontalDialDidValueChanged provide fine-grained callbacks for scroll and value change events, enabling responsive app behavior.
Features like enableRange, minimumValue, and maximumValue allow developers to constrain user input within specific numeric bounds.
The TODO section admits missing properties like 'clipsToRange' and 'unit', which are essential for certain use cases and indicate the project is not fully mature.
One of the TODO items is 'Optimizing UI performance', suggesting that the component may have inefficiencies in rendering or scrolling.
Built for UIKit and iOS 8+, HorizontalDial does not offer native SwiftUI wrappers, limiting its use in newer Apple development frameworks.