RxSplitSlider 0.0.1

RxSplitSlider 0.0.1

Tomas Friml 执掌。



 
依赖项
SplitSlider~> 0.1.1
RxCocoa~> 4.1.2
 

  • 3ph

RxSplitSlider

CI Status Version License Platform Swift

SplitSlider 的响应式扩展。

可自定义的中间部分双向滑动条。左右两部分相互独立,每部分可以有不同的最小值、最大值、步长、颜色等。

Screenshot

使用方法

简单地将自定义视图添加到 Storyboard 中或通过编程方式创建。同样也不忘记导入 SplitSlider

let slider = SplitSlider()

通用的滑动条属性(影响两部分)

// Minimal slider value.
slider.min = 0
// Maximal slider value.
slider.max = 100
// Step value of the slider.
slider.step = 5
// Font of the value labels.
slider.labelFont = UIFont.systemFont(ofSize: 10)
// Font color of the value labels.
slider.labelTextColor = UIColor.black
// Size of the slider's thumb.
slider.thumbSize = 20
// Color of the thumb.
slider.thumbColor = UIColor.darkGray
// Track height.
slider.trackHeight = 0
// Track color.
slider.trackColor = = UIColor.lightGray
// Color of selected part of the track.
slider.trackHighlightColor = UIColor.gray
// Determines if thumb should be snapped to the closest step after the move.
slider.snapToStep = true

上述所有属性都会影响滑块的两侧,但可以通过 slider.leftslider.right 部分来单独设置。

观察变化

// Slider portion selected - called when user selects (holds) portion of the slider. Return `nil` when no portion is being selected.
splitSlider
    .rx
    .portionSelected
    .asDriver(onErrorJustReturn: nil)
    .drive(onNext: { portion in
        let portionString = portion == self.splitSlider.left ? "left" : "right"
        NSLog("Selected part: \(portion == nil ? "none" : portionString)")
    }).disposed(by: disposeBag)
    
// Slider value changed for portion of slider.
splitSlider
    .rx
    .portionValueChanged
    .asDriver(onErrorJustReturn: (0, SplitSliderPortion()))
    .drive(onNext: { [unowned self] (value, portion) in
        let portionString = portion == self.splitSlider.left ? "left" : "right"
        NSLog("Current value: \(value) (portion: \(portionString))")
    }).disposed(by: disposeBag)

示例

要运行示例项目,请运行 pod try

需求

iOS 8及以上。

安装

RxSplitSlider 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "RxSplitSlider"

作者

Tomas Friml,[email protected]

许可协议

RxSplitSlider 在 MIT 许可下提供。更多信息请参阅 LICENSE 文件。