RangeSeekSliderClone 1.0.1

RangeSeekSliderClone 1.0.1

MuhammadjonTohirov 维护。




RangeSeekSlider

Join the chat at https://gitter.im/WorldDownTown/RangeSeekSlider

License Language Carthage compatible CocoaPods compatible Downloads with CocoaPods Awesome

概述

RangeSeekSlider 提供一个可定制的范围滑块,类似于 UISlider。此库基于 TomThorpe/TTRangeSlider (Objective-C) 并使用 Swift 制作。

demo

演示

您可以在 Appetize.io 上尝试

或者

构建 Xcode 项目。

  1. 打开 RangeSeekSlider.xcodeproj。
  2. 将方案更改为 RangeSeekSliderDemo
  3. 运行

使用方法

将 RangeSeekSlider 添加,就像添加任何其他 UIControl 一样。以下两种方法之一:

  • 在 Storyboard/xib 中添加一个视图,并将其 ClassModule更改为 RangeSeekSlider。您可以在属性检查器中设置所有属性并实时预览。

Interface Builder Module Screenshot

Interface Builder Screenshot

或者

  • 使用 RangeSeekSlider() 在代码中创建 RangeSeekSlider,然后将其作为子视图添加到代码中,并设置相关的自动布局属性或框架。

默认滑动条的范围为 0.0 -> 100.0,最小预选值为 10.0,最大预选值为 90.0。

用户选择的价值通过 selectedMinValueselectedMaxValue 属性公开。您还可以使用这些属性按程序更改选择值(如果您希望的话)。

使用以下属性进行控制的其它自定义操作

tintColor

tintColor属性(您也可以在Interface Builder中进行设置)用于设置控件的整体颜色,包括线条颜色、两个手柄和标签的颜色。

随时改变tintColor是安全的,如果控件当前可见,颜色变化将以动画形式过渡到新颜色。

minValue

在选择范围内的最小可能值

maxValue

在选择范围内的最大可能值

selectedMinValue

预先选择的最低值(注意:这应该小于selectedMaxValue)

selectedMaxValue

预先选择的最高值(注意:这应该大于selectedMinValue)

minLabelFont

最小值文本标签的字体。如果没有设置,默认为系统字体大小12.0

maxLabelFont

最大值文本标签的字体。如果未设置,则默认为系统字体大小 12.0

numberFormatter

滑块上的每个手柄上方都显示当前选定的值标签。如果您更改数字格式,请更新 NumberFormatter 的每个属性。默认情况下,这以十进制格式展示。

hideLabels

当设置为 true 时,滑块控件上方的标签将隐藏。默认是 false

labelsFixed

固定滑块控件上方的标签。如果 true,标签将固定在两端。否则,标签将随手柄移动。默认是 false

minDistance

两个选择的滑块值之间必须保持的最小距离。默认是 0.0

maxDistance

两个选定的滑块值之间必须保持的最大距离。默认是 CGFloat.greatestFiniteMagnitude

minLabelColor

最小值文本标签的颜色。如果未设置,则默认为tintColor。

maxLabelColor

最大值文本标签的颜色。如果未设置,则默认为tintColor。

handleColor

如果设置,则更新滑块的按钮颜色。默认为 tintColor

colorBetweenHandles

设置 colorBetweenHandles 属性将设置两个滑块之间的连线颜色。

handleBorderColor

如果设置,则更新滑块边框的颜色。默认为 tintColor

initialColor

当滑块的按钮设置为最小值和最大值时,设置整个滑块的颜色。默认为 nil。

disableRange

如果设置为 true,控件将模拟普通滑动条并只有一个滑块而不是范围。

在这种情况下,selectedMinValue 将不再功能。请使用 selectedMaxValue 来确定用户选择的价值。

enableStep

如果设置为 true,控件将捕捉到 minValue 和 maxValue 之间的每个 step(属性)。默认值是禁用。

step

如果 enableStep 设置为 true,此控件控步骤的值。例如,如果该值为 20,控件将捕捉到值 20、40、60...等。如果您启用 enableStep 属性,请设置此值。

handleImage

如果设置,则使用传递的图片用于滑块。

handleDiameter

如果设置,则会更新滑块的大小。默认为 16.0

selectedHandleDiameterMultiplier

如果设置,则更新当选中时滑块的缩放因子。默认为 1.7。如果您不希望有缩放,设置为 1.0

lineHeight

设置行高。它将自动圆整角落。如果没有指定,默认值将是 1.0

handleBorderWidth

如果设置,它将会更新处理边框的大小。默认是 0.0

labelPadding

如果设置,它将更新标签与处理之间的填充大小。默认是 8.0

minLabelAccessibilityLabel

显示在无障碍模式下的最小值处理器的标签。如果没有设置,默认为空字符串。

maxLabelAccessibilityLabel

显示在无障碍模式下的最大值处理器的标签。如果没有设置,默认为空字符串。

minLabelAccessibilityHint

显示在无障碍模式下的最小值处理器的简短描述。如果没有设置,默认为空字符串。

maxLabelAccessibilityHint

无障碍模式下显示的最大值处理器的简短描述。如果未设置,则默认为空字符串。

func setupStyle()

在继承 RangeSeekSlider 并在 setupStyle() 中设置每个项目时,设计会在 Interface Builder 中得到反映。 setup_style.gif

要求

  • Swift 3.0+
  • iOS 9.0+

安装

Carthage

RangeSeekSlider 通过 Carthage 提供。要安装它,只需将以下行添加到您的 Cartfile

github "WorldDownTown/RangeSeekSlider"

⚠️警告⚠️

在使用 Carthage 安装时,@IBDesignable 无法使用(Carthage Issue)。但我们有一个解决方案在 Stack Overflow 上。它能够通过继承 RangeSeekSlider 来使用 @IBDesignable

@IBDesignable class CustomRangeSeekSlider: RangeSeekSlider {}

CocoaPods

可以通过 CocoaPods 获取 RangeSeekSlider。要安装它,只需将以下行添加到您的 Podfile

pod 'RangeSeekSliderClone'

手动方式

下载并将 RangeSeekSlider/Sources 文件夹放入您的项目。

作者

WorldDownTown, [email protected]

许可证

RangeSeekSlider 适用于 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。