Description
A custom UIControl which functions like UISlider where you can set multiple intervals with different step values for each interval. This is useful when an interval spans over large values, for example, price of real estates. In that case it is convenient to divide the large interval in smaller intervals with each interval having its own step value.
MultiStepSlider alternatives and similar libraries
Based on the "UI" category.
Alternatively, view MultiStepSlider alternatives based on common mentions on social networks and blogs.
-
DZNEmptyDataSet
DISCONTINUED. A drop-in UITableView/UICollectionView superclass category for showing empty datasets whenever the view has no content to display -
IQKeyboardManager
Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more. -
SkeletonView
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting -
TTTAttributedLabel
A drop-in replacement for UILabel that supports attributes, data detectors, links, and more -
animated-tab-bar
:octocat: RAMAnimatedTabBarController is a Swift UI module library for adding animation to iOS tabbar items and icons. iOS library made by @Ramotion -
MGSwipeTableCell
An easy to use UITableViewCell subclass that allows to display swippable buttons with a variety of transitions. -
SWTableViewCell
An easy-to-use UITableViewCell subclass that implements a swippable content view which exposes utility buttons (similar to iOS 7 Mail Application) -
JVFloatLabeledTextField
UITextField subclass with floating labels - inspired by Matt D. Smith's design: http://dribbble.com/shots/1254439--GIF-Mobile-Form-Interaction?list=users -
FSPagerView
FSPagerView is an elegant Screen Slide Library. It is extremely helpful for making Banner View、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders. -
JTAppleCalendar
The Unofficial Apple iOS Swift Calendar View. Swift calendar Library. iOS calendar Control. 100% Customizable -
SwipeCellKit
Swipeable UITableViewCell/UICollectionViewCell based on the stock Mail.app, implemented in Swift. -
SideMenu
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less. -
Alerts & Pickers
Advanced usage of UIAlertController and pickers based on it: Telegram, Contacts, Location, PhotoLibrary, Country, Phone Code, Currency, Date... -
XLForm
XLForm is the most flexible and powerful iOS library to create dynamic table-view forms. Fully compatible with Swift & Obj-C. -
SwiftEntryKit
SwiftEntryKit is a presentation library for iOS. It can be used to easily display overlays within your iOS apps. -
TPKeyboardAvoiding
A drop-in universal solution for moving text fields out of the way of the keyboard in iOS -
PageMenu
A paging menu controller built from other view controllers placed inside a scroll view (like Spotify, Windows Phone, Instagram) -
CSStickyHeaderFlowLayout
UICollectionView replacement of UITableView. Do even more like Parallax Header, Sticky Section Header. Made for iOS 7. -
SWRevealViewController
A UIViewController subclass for presenting side view controllers inspired on the FaceBook and Wunderlist apps, done right ! -
Material Components
[In maintenance mode] Modular and customizable Material Design UI components for iOS -
expanding-collection
:octocat: ExpandingCollection is an animated material design UI card peek/pop controller. iOS library made by @Ramotion
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 MultiStepSlider or a related project?
README
MultiStepSlider
A custom UIControl which functions like UISlider where you can set multiple intervals with different step values for each interval. This is useful when an interval spans over large values, for example, price of real estates. In that case it is convenient to divide the large interval in smaller intervals with each interval having its own step value.
Installation
Add following lines in your pod file if you are using Swift 3
pod ‘MultiStepSlider’, '~> 2.0'
Add following lines in your pod file for previous Swift versions
pod ‘MultiStepSlider’, '~> 1.4'
Usage
import ‘MultiStepSlider’
In interface builder, drag one UIView and set its class as MultiStepSlider.
Configuration
MultiStepSlider can be configured by the following method.
func configureSlider(intervals intervals: [Interval], preSelectedRange: RangeValue?)
The first parameter is an array of type Interval which is defined as:
public struct Interval {
public private(set) var min: Float = 0.0
public private(set) var max: Float = 0.0
public private(set) var stepValue: Float = 0.0
}
The second parameter is of type RangeValue which is defined as:
public struct RangeValue {
public var lower: Float = 0.0
public var upper: Float = 0.0
}
This dictates the initial positions for lower and upper thumb. The lower and upper of RangeValue should lie within the interval specified and should be a valid node value. For example, if the there is an interval Interval(min: 50000, max: 100000, stepValue: 10000), then 60000 will be a valid node, but not 65000. In that case, a warning will be shown.
Warning: Range contains invalid node
Example
@IBOutlet weak var slider: MultiStepRangeSlider!
override func viewDidLoad() {
super.viewDidLoad()
let intervals = [Interval(min: 50000, max: 100000, stepValue: 10000),
Interval(min: 100000, max: 1000000, stepValue: 100000),
Interval(min: 1000000, max: 3000000, stepValue: 500000)]
let preSelectedRange = RangeValue(lower: 80000, upper: 500000)
slider.configureSlider(intervals: intervals, preSelectedRange: preSelectedRange)
print("continuous: lower = \(slider.continuousCurrentValues.lower) higher = \(slider.continuousCurrentValues.upper)")
print("discrete: lower = \(slider.discreteCurrentValue.lower) higher = \(slider.discreteCurrentValue.upper)")
}
Properties
discreteCurrentValue
This is of type RangeValue and gives the discrete upper and lower value.
continuousCurrentValue
This is of type RangeValue and gives the continuous upper and lower value.
trackTintColor
This color is used to tint the part of the track which is outside the range of lower thumb and upper thumb.
The default color is lightGrayColor.
trackHighlightTintColor
The color used to tint the part of the track which is inside the range of lowerValue and upperValue.
The default color is #007AFF (rgba = 0, 122, 255, 1)
trackCurvaceousness
This property is used to control the curvature of ends of the track. The property can have value from 0 to 1. trackCurvaceousness = 0.0 trackCurvaceousness = 1.0
thumbCurvaceousness
This property is used to control the curvature of the thumbs. The property can have value from 0 to 1.
trackCurvaceousness = 0.5 trackCurvaceousness = 1.0
shadowEnabled
Setting this property as true will show shadow around the thumbs.
License
MultiStepSlider is available under the MIT License.
Reference
*Note that all licence references and agreements mentioned in the MultiStepSlider README section above
are relevant to that project's source code only.