Skip to content

Stormotion-Mobile/LUNSegmentedControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Customizable segmented control with interactive animation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published