A custom component like UISegmentedControl highly customizable.
You can use CocoaPods by adding STTimeSlider
in your Podfile. If you don't want to use this method, please refer to the following method:
Please include these 4 files:
STTimeSlider.h
STTimeSlider.m
STTimeSliderModeView.h
STTimeSliderModeView.m
And include QuartzCore.framework
and CoreGraphics.framework
.
This plugin is highly customizable. You can customize:
STTimeSliderMode mode
: The mode of the slider (multi points or solo)int startIndex
: In modeSTTimeSliderModeMulti
, it's the initial departure point
float numberOfPoints
: The number of points (more than 1)float radiusPoint
: (1) The radius of the pointfloat heightLine
: (2) The height of the line between two points. The height must be lower thanradiusPoint * 2
;float spaceBetweenPoints
: (3) The space between two pointsfloat radiusCircle
: (4) The radius of the point inside the selected circles
CGGradientRef gradient
: The gradient of the background barCGGradientRef gradientForeground
: The gradient of the foreground bar
UIColor *strokeColor
: The color of the background bar's stroke.float strokeSize
: The size of the background bar's stroke.UIColor *strokeColorForeground
: The color of the foreground bar's stroke.float strokeSizeForeground
: The size of the foreground bar's stroke.
CGSize shadowSize
: The size.float shadowBlur
: The blur.UIColor *shadowColor
: The color.
Build and run the project STTimeSliderExample in Xcode to see STTimeSlider
in action.
STTimeSlider *timeSlider = [[STTimeSlider alloc] initWithFrame:CGRectMake(5.0, 5.0, 310.0, 110.0)];
[timeSlider setDelegate:self];
[self.view addSubview:timeSlider];
Don't forget to implementSTTimeSliderDelegate
protocol in your ViewController. Without it, you won't be able to detect when the user will change the index:
- (void)timeSlider:(STTimeSlider *)timeSlider didSelectPointAtIndex:(int)index {
NSLog(@"User clicked on TimeSlider %@ at Index %d", timeSlider, index);
}
or when the slider has changed:
- (void)timeSlider:(STTimeSlider *)timeSlider didMoveToPointAtIndex:(int)index {
NSLog(@"TimeSlider %@ has changed at Index %d", timeSlider, index);
}
You can change the index of the slider with - (void)moveToIndex:(int)index;
.
Sebastien Thiebaud
STTimeSlider is available under the MIT license.