KWStepper 2.5.1

KWStepper 2.5.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2019年5月
SPM支持 SPM

Kyle Weiner 维护。




KWStepper 2.5.1

  • Kyle Weiner

KWStepper

Version Carthage Documentation Platform License

KWStepper 是一个使用 Swift 编写的步进控制器。与 UIStepper 不同,KWStepper 可以完全自定义 UI,并提供回调,以便定制 UX。

KWStepper Screenshot

KWStepper 最初是为 Addo Label's Counters• 在 Objective-C 中创建的,现已在 Swift 中供您享用😁

特性

  • 允许完全自定义 UI。
  • 提供了设置不同递减和递增步长属性的属性。
  • 提供可选的回调,用于响应用户操作和控制事件,以及定制 UX。
  • 支持方法链,便于配置和事件处理。

安装

CocoaPods

KWStepper 通过 CocoaPods 提供。要安装它,请简单地将以下行添加到您的 Podfile

platform :ios, '8.0'
use_frameworks!

pod 'KWStepper'

Carthage

要使用 Carthage 集成 KWStepper,请将以下行添加到您的 Cartfile

github "kyleweiner/KWStepper"

手动

如果您不想使用依赖管理器,只需将 源文件 复制到您的项目中。

使用方法

尝试示例项目!

var stepper: KWStepper!

@IBOutlet weak var countLabel: UILabel!
@IBOutlet weak var decrementButton: UIButton!
@IBOutlet weak var incrementButton: UIButton!
stepper = KWStepper(decrementButton: decrementButton, incrementButton: incrementButton)

使用 valueChangedCallback 属性响应用户的动作事件。

stepper.valueChangedCallback = { stepper in
    self.countLabel.text = String(stepper.value)
}

或者,使用目标动作模式。

stepper.addTarget(self, action: #selector(stepperDidChange), for: .valueChanged)

配置 KWStepper

除了 continuous 属性外,KWStepper 提供了所有由 UIStepper 提供的功能以及更多。

stepper.autoRepeat = true
stepper.autoRepeatInterval = 0.10
stepper.wraps = true
stepper.minimumValue = 0
stepper.maximumValue = 8
stepper.value = 0
stepper.incrementStepValue = 1
stepper.decrementStepValue = 1

还支持方法链式调用

stepper
    .wraps(true)
    .maximumValue(10)
    .stepValue(2)
    .valueChanged { stepper in
        // ...
    }

如果需要,可以通过 roundingBehavior 修改递增和递减的舍入行为。

KWStepperDelegate

采用 KWStepperDelegate 可以为定制 UX 提供以下可选代理方法。

  • 可选 func KWStepperDidDecrement()
  • 可选 func KWStepperDidIncrement()
  • 可选 func KWStepperMaxValueClamped()
  • 可选 func KWStepperMinValueClamped()
  • 可选 func KWStepperDidEndLongPress()

回调函数

KWStepper提供了以下回调函数

  • valueChangedCallback
  • decrementCallback
  • incrementCallback
  • maxValueClampedCallback
  • minValueClampedCallback
  • longPressEndedCallback

也支持回调函数的链式调用

stepper
    .valueChanged { _ in }
    .didDecrement { _ in }
    .didIncrement { _ in }
    .maxValueClamped { _ in }
    .minValueClamped { _ in }
    .longPressEnded { _ in }

// `maxValueClampedCallback` and `minValueClampedCallback` may be set simultaneously.
stepper.valueClamped { stepper in
    // ...
}

在示例项目中,当stepper值改变时,使用valueChanged(_:)更新计数标签文本。valueClamped(:_)用于在到达限制并且将wraps属性设置为false时,显示UIAlertController

作者

KWStepper由Kyle Weiner和贡献者编写。

许可证

KWStepper受MIT许可证约束。详情请见LICENSE文件。