Skip to content

AORangeSlider is a custom UISlider with two handlers to pick a minimum and a maximum range.

License

Notifications You must be signed in to change notification settings

Andy1984/AORangeSlider

Repository files navigation

AORangeSlider

Screenshot gif

AORangeSlider is a custom UISlider with two handlers to pick a minimum and a maximum range.

Adding AORangeSlider to your project

CocoaPods is the recommended way to add AORangeSlider to your project. Add the following line to your Podfile:

pod 'AORangeSlider', '~> 1.0'

Adding AORangeSlider if your project is written in OC

#import <AORangeSlider/AORangeSlider-Swift.h>

You can see the .h file. Scroll down and you can see the api.

Alternatively

@import AORangeSlider

Usage

let rangeSlider = AORangeSlider(frame: frame)
view.addSubView(rangeSlider)

To observe value changes when using gesture

rangeSlider.addTarget(self, action: #selector(sliderValueChanged(sender:)), for: .valueChanged)

is enough, but it cannot observe changes when value being changed programmatically. Thus, valuesChangedHandler is a better way.

If you want to call a method only when touch ends

rangeSlider.changeValueContinuously = false;
rangeSlider.addTarget(self, action: #selector(sliderValueChanged(sender:)), for: .valueChanged)

else if you want to call a method whenever the value changes, no matter by code or by touch,

rangeSlider.valuesChangedHandler = {
    //write your code here, and pay attention to Circular Reference.
}

Configuration

  • minimumValue : The minimum possible value of the range
  • maximumValue : The maximum possible value of the range
  • lowHandleImageNormal: The image of low thumb
  • highHandleImageNormal: The image of high thumb
  • lowValue: set low value programmatically
  • highValue: set high value programmatically
  • func setValue(low: Double, high: Double, animated: Bool) set values animated
  • stepValue: move animatedly to a stepValue when touch ends
  • stepValueContinuously: If true, the thumb will not move until it hit a new step