A highly customizable stepped progress bar for iOS with flexible text positioning and multiple state indicators.
FlexibleSteppedProgressBar is a Swift library for iOS that provides a customizable stepped progress bar UI component. It visualizes multi-step processes with options for text positioning, multiple visual states, and extensive styling to match app designs.
iOS developers building apps with multi-step workflows, such as onboarding, forms, or process trackers, who need a visually adaptable progress indicator.
Developers choose it for its high customizability, support for flexible text placement, and the unique last-state tracking feature, which offers clearer progress visualization compared to basic progress bars.
Flexible Stepped Progress Bar for IOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows precise adjustment of colors, sizes, line heights, and fonts for circles, lines, and text, as detailed in the customisation section with properties like radius, progressRadius, and various color options.
Supports text placement inside circles, above, or below them via TOP, CENTER, and BOTTOM locations, enabling tailored layouts for different app designs, as explained in the text positioning customisation.
Includes four visual states (unselected/unvisited, unselected/visited, currently selected, and optional last state) for clear progress tracking, with separate customization for each state like lastStateCenterColor.
Provides delegate methods for handling item selection and dynamic text, allowing interactive features such as canSelectItemAtIndex and textAtIndex for responsive user interfaces.
The library is built for UIKit and lacks native SwiftUI support, restricting its use in modern iOS apps that adopt SwiftUI, requiring additional wrapping for integration.
With numerous customization options and a caution in the README about manually setting viewBackgroundColor for non-white backgrounds, setup can be error-prone and overwhelming for straightforward implementations.
Installation is primarily through CocoaPods, which may not suit projects using alternative dependency managers like Swift Package Manager or Carthage, limiting flexibility.