diff --git a/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Example/RangeSliderDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/RangeSliderDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Example/RangeSliderDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Example/RangeSliderDemo/Base.lproj/Main.storyboard b/Example/RangeSliderDemo/Base.lproj/Main.storyboard index 6ffde32..7bc3a35 100644 --- a/Example/RangeSliderDemo/Base.lproj/Main.storyboard +++ b/Example/RangeSliderDemo/Base.lproj/Main.storyboard @@ -1,12 +1,9 @@ - - - - + + - - + @@ -23,7 +20,7 @@ - + @@ -36,7 +33,7 @@ - + @@ -68,13 +65,13 @@ - + @@ -105,13 +102,13 @@ - + @@ -142,8 +139,8 @@ - + + + + + + + + + + + + + + + + + diff --git a/Example/RangeSliderDemo/ViewController.m b/Example/RangeSliderDemo/ViewController.m index 77ea5af..1920e61 100644 --- a/Example/RangeSliderDemo/ViewController.m +++ b/Example/RangeSliderDemo/ViewController.m @@ -12,6 +12,8 @@ @interface ViewController () @property (weak, nonatomic) IBOutlet TTRangeSlider *rangeSlider; @property (weak, nonatomic) IBOutlet TTRangeSlider *rangeSliderCurrency; @property (weak, nonatomic) IBOutlet TTRangeSlider *rangeSliderCustom; +@property (weak, nonatomic) IBOutlet TTRangeSlider *rangeSliderOverridenLabels; + @end @implementation ViewController @@ -66,6 +68,8 @@ - (void)viewDidLoad { self.rangeSliderCustom.shadowRadius = 3; self.rangeSliderCustom.shadowOpacity = 0.5; + //override label range slider + self.rangeSliderOverridenLabels.delegate = self; } - (void)didReceiveMemoryWarning { @@ -83,4 +87,25 @@ -(void)rangeSlider:(TTRangeSlider *)sender didChangeSelectedMinimumValue:(float) } } +#pragma mark Optional override +- (NSString *)overrideLabelForRangeSlider:(TTRangeSlider *_Nullable)sender minMaxValue:(float)selectedVal{ + NSString *returnValue = nil; + if (sender == self.rangeSliderOverridenLabels) { + + NSString *str = [NSString stringWithFormat:@"%f", selectedVal]; + NSString *hexStr = [NSString stringWithFormat:@"%lX", + (unsigned long)[str integerValue]]; + if (sender.selectedMinimum == selectedVal) + { + returnValue = [NSString stringWithFormat:@"min:%@",hexStr]; + } + else + { + returnValue = [NSString stringWithFormat:@"max:%@",hexStr]; + } + } + return returnValue; +} + + @end diff --git a/Pod/Classes/TTRangeSlider.m b/Pod/Classes/TTRangeSlider.m index b1d71b3..f77284d 100644 --- a/Pod/Classes/TTRangeSlider.m +++ b/Pod/Classes/TTRangeSlider.m @@ -270,10 +270,19 @@ - (void)updateLabelValues { return; } - NSNumberFormatter *formatter = (self.numberFormatterOverride != nil) ? self.numberFormatterOverride : self.decimalNumberFormatter; + if (self.delegate && [self.delegate respondsToSelector:@selector(overrideLabelForRangeSlider:minMaxValue:)]) { - self.minLabel.string = [formatter stringFromNumber:@(self.selectedMinimum)]; - self.maxLabel.string = [formatter stringFromNumber:@(self.selectedMaximum)]; + self.minLabel.string = [self.delegate overrideLabelForRangeSlider:self minMaxValue:self.selectedMinimum]; + self.maxLabel.string = [self.delegate overrideLabelForRangeSlider:self minMaxValue:self.selectedMaximum]; + + } + else + { + NSNumberFormatter *formatter = (self.numberFormatterOverride != nil) ? self.numberFormatterOverride : self.decimalNumberFormatter; + + self.minLabel.string = [formatter stringFromNumber:@(self.selectedMinimum)]; + self.maxLabel.string = [formatter stringFromNumber:@(self.selectedMaximum)]; + } self.minLabelTextSize = [self.minLabel.string sizeWithAttributes:@{NSFontAttributeName:self.minLabelFont}]; self.maxLabelTextSize = [self.maxLabel.string sizeWithAttributes:@{NSFontAttributeName:self.maxLabelFont}]; diff --git a/Pod/Classes/TTRangeSliderDelegate.h b/Pod/Classes/TTRangeSliderDelegate.h index fa1b678..2d47ef4 100644 --- a/Pod/Classes/TTRangeSliderDelegate.h +++ b/Pod/Classes/TTRangeSliderDelegate.h @@ -28,4 +28,10 @@ */ - (void)didStartTouchesInRangeSlider:(TTRangeSlider *)sender; +/** + * Called when the user wants to override the selected min/max labels based upon their passed in float values. + */ + +- (nullable NSString *)overrideLabelForRangeSlider:(TTRangeSlider *_Nullable)sender minMaxValue:(float)selectedVal; + @end diff --git a/README.md b/README.md index c913144..c6d109b 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,10 @@ To be notified when the slider’s value changes, register your action method wi Alternatively you can implement the `TTRangeSliderDelegate` protocol and respond to changes in the `rangeSlider:didChangeSelectedMinimumValue:andMaximumValue:` method. +## Overriding the selected minimum/maximum labels + +To override the selected min/max labels, implement the `TTRangeSliderDelegate` protocol and respond to changes in the `overrideLabelForRangeSlider:minMaxValue:` method. + Other customisation of the control is done using the following properties: #### `tintColor` The tintColor property (which you can also set in Interface Builder) sets the overall colour of the control, including the colour of the line, the two handles, and the labels.