Swift - RxSwift的使用详解26(UI控件扩展6:UISlider、UIStepper)

六、UISlider、UIStepper

1,UISlider(滑块)

(1)效果图

当我们拖动滑块时,在控制台中实时输出 slider 当前值。

Swift - RxSwift的使用详解26(UI控件扩展6:UISlider、UIStepper)_第1张图片

Swift - RxSwift的使用详解26(UI控件扩展6:UISlider、UIStepper)_第2张图片

(2)样例代码

import UIKit
import RxSwift
import RxCocoa
 
class ViewController: UIViewController {
     
    @IBOutlet weak var slider: UISlider!
     
    let disposeBag = DisposeBag()
     
    override func viewDidLoad() {
        slider.rx.value.asObservable()
            .subscribe(onNext: {
                print("当前值为:\($0)")
            })
            .disposed(by: disposeBag)
    }
}

2,UIStepper(步进器)

(1)下面样例当 stepper 值改变时,在控制台中实时输出当前值。

Swift - RxSwift的使用详解26(UI控件扩展6:UISlider、UIStepper)_第3张图片

Swift - RxSwift的使用详解26(UI控件扩展6:UISlider、UIStepper)_第4张图片
stepper.rx.value.asObservable()
    .subscribe(onNext: {
        print("当前值为:\($0)")
    })
    .disposed(by: disposeBag)

(2)下面样例我们使用滑块(slider)来控制 stepper 的步长。

Swift - RxSwift的使用详解26(UI控件扩展6:UISlider、UIStepper)_第5张图片
slider.rx.value
    .map{ Double($0) }  //由于slider值为Float类型,而stepper的stepValue为Double类型,因此需要转换
    .bind(to: stepper.rx.stepValue)
    .disposed(by: disposeBag)

RxSwift使用详解系列
原文出自:www.hangge.com转载请保留原文链接

你可能感兴趣的:(Swift - RxSwift的使用详解26(UI控件扩展6:UISlider、UIStepper))