RxSwift之UI控件UISlider与UIStepper扩展的使用

一、UISlider(滑块)

  • 如下所示,当拖动滑块时,在控制台中实时输出 slider 当前值:

在这里插入图片描述

当前值为:0.308442
当前值为:0.349990
当前值为:0.400087
当前值为:0.459987
当前值为:0.550990
当前值为:0.700990
  • 示例代码:
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)
    }
}

二、UIStepper(步进器)

  • 如下所示,当 stepper 值改变时,在控制台中实时输出当前值:

在这里插入图片描述

当前值为:7.0
当前值为:6.0
当前值为:5.0
当前值为:6.0
当前值为:7.0
当前值为:8.0
  • 示例代码:
stepper.rx.value.asObservable()
    .subscribe(onNext: {
     
        print("当前值为:\($0)")
    })
    .disposed(by: disposeBag)
  • 使用滑块(slider)来控制 stepper 的步长:

RxSwift之UI控件UISlider与UIStepper扩展的使用_第1张图片

  • 示例代码:
slider.rx.value
    .map{
      Double($0) }  // 由于slider值为Float类型,而stepper的stepValue为Double类型,因此需要转换
    .bind(to: stepper.rx.stepValue)
    .disposed(by: disposeBag)

你可能感兴趣的:(RAC+RxSwift,UISlider,UIStepper)