KnobFramework
KnobFramework 是一个高度可自定义、可重用的 iOS环形滑块,模仿旋钮控件的行徑。它不使用预设图片,并且它的所有组件都是用代码绘制,使其能极其适应各种设计和主题。
示例
要运行示例项目,首先克隆仓库,然后在 Example 目录中运行 pod install
。
需求
- iOS 10.0+
- Xcode 10.0
安装
KnobFramework 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile。
pod 'KnobFramework'
使用方法
- 视觉上
将 UIView 拖拽到故事板中,将其类更改为 CircularSlider,并开始根据您的喜好进行视觉定制。所有参数都是 IBInspectable 类型,因此您可以直接从属性检查器选项卡配置滑动条,而不需要编写任何代码。
- 以编程方式
import KnobFramework
let circularSlider = CircularSlider(frame: aFrame)
circularSlider.startAngle = 230
circularSlider.endAngle = 310
circularSlider.minimumValue = 0
circularSlider.maximumValue = 60
circularSlider.isClockwise = false
这是您可以配置滑动条的许多参数中的一些。
滑动条的最小/最大值是 IBInspectable 类型的,默认分别为 0.0 和 100.0。它们也支持负值和正值或它们的组合。
@IBInspectable open var minimumValue: CGFloat = 0
@IBInspectable open var maximumValue: CGFloat = 100
滑动条的 value
属性是可读可写的,并设计成与 UIKit 中通用 UISlider 的值属性类似工作。
/**
This value will be pinned to minimumValue/maximumValue
The default value of this property is 0.0.
*/
@IBInspectable open var value: CGFloat // { get set }
要获取值更改通知,请使用自中控件 Controls 内在的 Target-Action
模式,如下所示
/**
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, 1.0] 范围内,否则默认值为 0.0。
@IBInspectable open var labelDecimalPlaces: Int = 0
如果您需要覆盖标签中的文本,请只需在 Target-Action
方法的事件 UIControl.Event.valueChanged
选择器内实现以下函数。
open func setLabelText(_ text: String?)
参考文献
本项目的灵感来源于
作者
Jalal Ouraigua, [email protected]
许可证
KnobFramework 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。