JOCircularSlider 2.0.3

JOCircularSlider 2.0.3

Jalal Ouraigua 维护。



Version Platform Language License Twitter: @ouraigua Readme Score codebeat badge

JOCircularSlider

JOCircularSlider 是一个高度可定制和可重用的 iOS 循环滑动控件,模仿旋钮控制的行为。它不使用预设图片,其所有组件都是完全在代码中绘制的,因此它极具适应各种设计和主题的能力。

示例

要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install

要求

  • iOS 10.0+
  • Xcode 10.0

安装

JOCircularSlider 可以通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中

pod 'JOCircularSlider'

JOCircularSlider 还可以通过 Carthage 获得。要安装它,只需将以下行添加到您的 Cartfile

github "ouraigua/JOCircularSlider"

使用

  1. 视觉上

将一个 UIView 拖拽到你的 Storyboard 中,将其类设置为 CircularSlider,然后根据你的喜好开始视觉化定制设计。所有参数都是 IBInspectable,因此你可以直接在属性检查器标签中配置滑块,无需编写任何代码。

  1. 编程上
import JOCircularSlider

let circularSlider = CircularSlider(frame: aFrame)
circularSlider.startAngle = 230
circularSlider.endAngle = 310
circularSlider.minimumValue = 0
circularSlider.maximumValue = 60
circularSlider.isClockwise = false

这些只是为你可以配置的许多滑块参数中的一部分。

滑块的 min/max 值是 IBInspectable 的,默认分别为 0.0 和 100.0。它们也支持负数和正数或它们的混合使用。

@IBInspectable open var minimumValue: CGFloat = 0
@IBInspectable open var maximumValue: CGFloat = 100

滑块的 value 属性具有读写权限,并设计得与 UIKit 的通用 UISlider 的熟悉 value 属性类似。

/**
    This value will be pinned to minimumValue/maximumValue
    The default value of this property is 0.0. 
*/
@IBInspectable open var value: CGFloat  // { get set }

为了接收值变更通知,请使用 Target-Action 模式,它是 UIControl 内在的一部分,如下所示

/**
    Add target/action for particular event.
    - parameter target:     The object whose action method is called
    - parameter action:     A selector identifying the action method to be called
    - parameter Event:      The control-specific events for which the action method is called
                            So far I've only implemented the following:
                            
                            UIControl.Event.valueChanged
                            UIControl.Event.editingDidBegin
                            UIControl.Event.editingDidEnd
*/
circularSlider.addTarget(target: Any?, action: Selector, for: UIControl.Event)

要控制显示值的标签的外观,请使用以下

open func setLabelFont(named: String, textColor: UIColor, multiplier: CGFloat)
open func setLabelShadow(color: UIColor, opacity: Float = 1, offset: CGSize = CGSize(width: 1, height: 1), radius: CGFloat = 0)

你还可以指定此标签应显示的小数位数。默认为 0.0,除非例如值在 [0.0, 1.0] 区间内。

@IBInspectable open var labelDecimalPlaces: Int = 0

如果你需要重写标签中的文本,则只需在针对事件 UIControl.Event.valueChangedTarget-Action 方法的选择器内部实现以下函数。

open func setLabelText(_ text: String?)

参考

该项目灵感来源于

作者

Jalal Ouraigua, [email protected]

许可协议

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