RSColourSlider 1.0.7

RSColourSlider 1.0.7

Ramil Salimov 维护。



RSColourSlider Image

RSColourSlider

Version License Platform

关于

RSColourSlider 可以让您的应用使用颜色选择功能。该颜色选择器以 普通滑动条 形式实现,对每个 iOS 用户来说都很熟悉。由于 RSColourSlider 继承自 UIView 类,因此安装和设置非常容易。您可以从 RSColourSlider 继承自己的类并更改滑动条的自定义子类中的元素,也可以在任意 UIViewController 子类的实例中运行时设置它。该界面元素被创建为简化版的 macOS 的 NSColorPicker 的 iOS 等效物。

特性

  • 易于使用
  • 可应用所有彩虹颜色
  • 支持自动布局和 Storyboards
  • 灵活的自定义化

要求

iOS 12.0+,Swift 5.0+

安装

RSColourSlider 通过 CocoaPods 提供使用。要安装它,只需将以下行添加到您的 Podfile:

platform :ios, '12.0'
use_frameworks!

pod 'RSColourSlider'

然后,在终端中运行 "install" 命令。

pod install

有关更多信息,请参阅 入门指南...

文档

首先导入框架。

import RSColourSlider

对象创建

可以按照传统方式,通过代码创建 RSColourSlider 的实例:

//example
let colourSlider = RSColourSlider(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 50))
self.view.addSubview(view)

也可以在 Storyboard 中将 UIView 拖动到您的 ViewController 中,在 identity inspector 中设置所选视图的 ClassModule 为 RSColourSlider,然后创建其 outlet。

@IBOutlet weak var colourSlider: RSColourSlider!

您必须将滑动条的 delegate 设置为 ViewController 的实例,以便在滑动条值变化时访问其代理方法。

//for example in viewDidLoad()
override func viewDidLoad() {
    super.viewDidLoad()
    colourSlider.delegate = self
}

代理

colourGotten(_:)

当滑动条的值变化时,获取 UIColor。

func colourGotten(colour: UIColor) {
    self.view.backgroundColour = colour
}

colourValuesChanged(_:) //RGBA

从滑动条的值获取 RGBA 值。

func colourValuesChanged(to red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
    print(red, green, blue, alpha) //For example
}

colourValuesChanged(_:) //HSBA

从滑动条的值获取 HSBA 值。

func colourValuesChanged(to hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat) {
    print(hue, saturation, brightness, alpha) //For example
}

有用的方法

getCurrentRGBAValues()

返回当前 RGBA 值的元组,当您通过另一个 UISlider 更改亮度、alpha 或饱和度时调用它,您想将当前选择颜色设置为某些 UI 元素或读取其值。

let rgbaValues = getCurrentRGBAValues()
print(rgbaValues.red, rgbaValues.green, rgbaValues.blue, rgbaValues.alpha)

getCurrentHSBAValues()

返回当前HSBA值的元组,如果您通过其他 UISlider 改变了亮度、透明度或饱和度,可以调用此函数,如果您想将当前选中的颜色设置到某个UI元素上或读取其值

let hsbaValues = getCurrentHSBAValues()
print(hsbaValues.hue, hsbaValues.saturation, hsbaValues.brightness, hsbaValues.alpha)

setSliderValueBy(colour: UIColor)

将滑块移动到选定的值,并通过传入颜色作为参数更新滑块

//for example in viewDidLoad()
override func viewDidLoad() {
    super.viewDidLoad()
    colourSlider.setSliderValueBy(colour: UIColor.blue)
}

setSliderValueByColourValues(hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)

将滑块移动到选定的值,并通过传入HSBA值作为参数更新滑块

//for example in viewDidLoad()
override func viewDidLoad() {
    super.viewDidLoad()
    colourSlider.setSliderValueByColourValues(hue: 0.5, saturation: 1, brightness: 1, alpha: 1)
}

TODO: setSliderValueByColourValues(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)

setCornerRadius(by value: CGFloat)

设置滑块圆角半径的安全方法

//for example in viewDidLoad()
override func viewDidLoad() {
    super.viewDidLoad()
    colourSlider.setCornerRadius(by: colourSlider.bounds.height / 2)
}

handlePanGesture(_ gestureRecognizer: UIPanGestureRecognizer)

处理滑块的移动,可以被重写

@objc open func handlePanGesture(_ gestureRecognizer: UIPanGestureRecognizer) 

属性

delegate: RSColourSliderDelegate

触发代理的方法

public var delegate: RSColourSliderDelegate?

brightness: CGFloat

更改此值会影响滑块的亮度

open var brightness: CGFloat = 1.0 //defualt

saturation: CGFloat

更改此值会影响滑块的饱和度

open var saturation: CGFloat = 1.0 //default

alphaColourValue: CGFloat

更改此值会影响滑块的透明度

open var alphaColourValue: CGFloat = 1.0 //default

colourChosen: UIColor

滑块显示的当前颜色

public var colourChosen: UIColor = UIColor(hue: 0, saturation: 1, brightness: 1, alpha: 1) //default

thumbView: UIView!

滑块视图。可以被修改

public var thumbView: UIView!

ThumbView有如下值

//shadow
thumbView.layer.shadowColor = UIColor.black.cgColor
thumbView.layer.shadowOffset = .zero
thumbView.layer.shadowOpacity = 0.3
thumbView.layer.shadowRadius = 4.0
//borderWidth
thumbView.layer.borderWidth = 4
thumbView.layer.borderColor = UIColor.white.cgColor
thumbView.addGestureRecognizer(panGesture)

backgroundColouredView: UIView!

包含所有层和子视图的视图(不是thumbView)。此视图的宽度是当滑动控件计算色调值时的除数

public var backgroundColouredView: UIView!

RSColourView 继承自UIView并且可以使用UIView类的方法!

逻辑

值 | 最小值 | 最大值 | 色调 | 0 | 1 | 饱和度 | 0 | 1 | 亮度 | 0 | 1 | 透明度 | 0 | 1 |

许可

RSColourSlider可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。

联系方式

Ramil Uberdeviant Salimoff