LUNSegmentedControl alternatives and similar libraries
Based on the "Switch" category.
Alternatively, view LUNSegmentedControl alternatives based on common mentions on social networks and blogs.
-
RAMPaperSwitch
:octocat: π RAMPaperSwitch is a Swift material design UI module which paints over the parent view when the switch is turned on. iOS library by @Ramotion -
SJFluidSegmentedControl
A segmented control with custom appearance and interactive animations. Written in Swift 3.0. -
MultiSelectSegmentedControl
UISegmentedControl remake that supports selecting multiple segments, vertical stacking, combining text and images.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of LUNSegmentedControl or a related project?
README
LUNSegmentedControl
Purpose
LUNSegmentedControl is control designed to let developers use segmented control with custom appearance, customizable interactive animation and other pretty things like gradient for states and shadow.
Supported OS & SDK Versions
- Supported build target - iOS 8.0
ARC Compatibility
LUNSegmentedControl requires ARC.
Installation
To use the LUNSegmentedControl in your app, just drag the LUNSegmentedControl folder into your project.
Or you can use CocoaPods
pod 'LUNSegmentedControl'
Usage
Add a UIView and change its class to LUNSegmentedControl. Then you need to set its data source (either from the storyboard or programmaticaly). Implement the data source method that returns the segment count:
- (NSInteger)numberOfStatesInSegmentedControl:(LUNSegmentedControl *)segmentedControl;
Now implement one of the Data Source methods so you can set either a string, an attributed string or a view to be displayed in every segment.
- (NSString *)segmentedControl:(LUNSegmentedControl *)segmentedControl titleForStateAtIndex:(NSInteger)index;
- (NSAttributedString *)segmentedControl:(LUNSegmentedControl *)segmentedControl attributedTitleForStateAtIndex:(NSInteger)index;
- (UIView *)segmentedControl:(LUNSegmentedControl *)segmentedControl viewForStateAtIndex:(NSInteger)index;
If necessary, you can set a string, an attributed string or a view for the selected state for each segment with the help of following Data Source methods:
- (NSString *)segmentedControl:(LUNSegmentedControl *)segmentedControl titleForSelectedStateAtIndex:(NSInteger)index;
- (NSAttributedString *)segmentedControl:(LUNSegmentedControl *)segmentedControl attributedTitleForSelectedStateAtIndex:(NSInteger)index;
- (UIView *)segmentedControl:(LUNSegmentedControl *)segmentedControl viewForSelectedStateAtIndex:(NSInteger)index;
After that you can set the following parameters (either from the storyboard or programmaticaly) in order to change the way your control looks:
@property (nonatomic, assign) IBInspectable CGFloat cornerRadius;
In case you want to customize corner radius of the control.
@property (nonatomic, strong) IBInspectable UIColor *textColor;
Change that if you want to customize text color for titles of unselected segments.
@property (nonatomic, strong) IBInspectable UIColor *selectedStateTextColor;
It is used to change the text color of the title for the selected segment.
@property (nonatomic, strong) IBInspectable UIColor *selectorViewColor;
Thatβs how you change the color of selection itself.
In addition, you can set a color (or a number of colors to get a gradient) for each segment, left and right bounces with the help of the following data source methods:
- (NSArray <UIColor *> *)segmentedControl:(LUNSegmentedControl *)segmentedControl gradientColorsForStateAtIndex:(NSInteger)index;
- (NSArray <UIColor *> *)segmentedControl:(LUNSegmentedControl *)segmentedControl gradientColorsForBounce:(LUNSegmentedControlBounce)bounce;
If you want to recieve notifications about position changes, set control's delegate.
Check out the documentation to find description for more methods and properties you may use.
License
Usage is provided under the MIT License
*Note that all licence references and agreements mentioned in the LUNSegmentedControl README section above
are relevant to that project's source code only.