A customizable iOS control that extends UISegmentedControl with multi-selection, vertical stacking, and mixed text/image segments.
MultiSelectSegmentedControl is an open-source iOS UI component that enhances the standard UISegmentedControl by adding support for multiple segment selection, vertical layout options, and combined text/image content. It solves the limitation of native UISegmentedControl which only allows single selection and has restricted content display, providing developers with a more versatile control for building interactive selection interfaces.
iOS and macOS developers building apps that require advanced segmented controls, such as those creating filter interfaces, settings panels, or any UI where users need to select multiple options from a segmented layout.
Developers choose this library because it's a drop-in replacement for UISegmentedControl with minimal learning curve, offers extensive customization options, supports both UIKit and SwiftUI, and fills functionality gaps that Apple's native control lacks.
UISegmentedControl remake that supports selecting multiple segments, vertical stacking, combining text and images.
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 selecting one or multiple segments simultaneously, a key limitation of UISegmentedControl, with properties like selectedSegmentIndexes for easy management.
Supports both horizontal and vertical stacking via isVertical property, enabling compact or alternative UI arrangements as shown in the layout examples.
Each segment can display text, images, or both together, with control over rendering such as template mode for images, detailed in the 'Creating Segments' section.
Includes a MultiSegmentPicker component for SwiftUI with declarative syntax and bindings, bridging UIKit functionality into modern SwiftUI projects.
The README's TODO list admits pending fixes for selected segment foreground color transparency and layout margin configuration, which could affect visual polish.
Images are shown in full color by default, requiring extra steps like setting rendering mode to template to match tint color, unlike native controls.
Missing configuration for segment layout margins and stack view spacing, as noted in the TODO, restricting fine-tuning of the UI.