RangeSeekSlider
概览
RangeSeekSlider
提供了一个可自定义的范围滑动条,类似于 UISlider。这个库基于 TomThorpe/TTRangeSlider(Objective-C)并用 Swift 开发。
演示
您可以在 Appetize.io 上尝试
或者
构建 Xcode 项目。
- 打开 RangeSeekSlider.xcodeproj。
- 将 Scheme 更改为
RangeSeekSliderDemo
- 运行
使用
将 RangeSeekSlider 添加到任何其他 UIControl 中,方法如下:
- 在您的Storyboard/xib中添加一个视图,并将其
Class
和Module
改为RangeSeekSlider
。您可以在属性检查器中设置所有属性,并查看实时预览。
或者
- 使用
RangeSeekSlider()
在代码中创建RangeSeekSlider
,然后将其添加为子视图,并设置相关的自动布局属性或框架。
默认滑块的取值范围为0.0 -> 100.0,最小值为10.0,最大值为90.0。
用户选择的值通过selectedMinValue
和selectedMaxValue
属性公开。如果您愿意,也可以使用这些属性以编程方式更改所选值。
使用以下属性进行控件的其他自定义
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
。
初始颜色
当手柄设置在最小值和最大值时,整个滑动条的颜色。默认为空。
禁用范围
如果设置为 true
,控件将模拟一个正常滑动条,并且只有一个手柄而不是范围。
在这种情况下,所选的最小值将不再有效。请使用所选的最大值来决定用户选择的值。
启用步进
如果设置为 true
,控件将之间每个步进点(属性)从一个最小值滑动到最大值。默认值是关闭。
步进
如果 启用步进
设置为 true
,此控件将设置每个步进的值。例如,如果此值为 20,控制将自动调整到 20、40、60 等。在启用 启用步进
属性时设置此值。
手柄图片
如果设置,传递的图像将用于手柄。
手柄直径
如果设置,则更新手柄的大小。默认值为 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 中体现。
要求
- Swift 3.0+
- iOS 9.0+
安装
Carthage
RangeSeekSlider 可以通过 Carthage 获取。要安装它,只需将以下行添加到您的 Cartfile 文件中。
github "WorldDownTown/RangeSeekSlider"
⚠️ 警告⚠️
当与 Carthage 一起安装时,@IBDesignable
不可用(Carthage 问题)。但是,我们在 Stack Overflow 中提供了一种解决方案。可以通过继承 RangeSeekSlider
来使用 @IBDesignable
。
@IBDesignable class CustomRangeSeekSlider: RangeSeekSlider {}
CocoaPods
RangeSeekSlider 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 文件中。
pod 'RangeSeekSlider'
手动安装
下载并将 RangeSeekSlider/Sources
文件夹拖放到您的项目中。
作者
WorldDownTown, [email protected]
许可证
RangeSeekSlider 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。