CCTrans渐变 1.0.2

CCTrans 1.0.2

Amir Rezvani维护。



CCTrans 1.0.2

  • Amir Rezvani

CCGradient

轻量级、易于使用的渐变视图,由GPU加速的CoreAnimation的Layer支持,拥有380+种内置渐变颜色,大部分来自uigradients。

用法

创建配置

CCGradientView使用CCGradientViewConfiguration进行配置

  • 颜色。
  • 类型(axialconicradial)。
  • 位置:渐变中每种颜色的位置。
  • 点:每种颜色开始和结束的点。

您可以使用以下方式之一创建配置对象:

  1. 仅使用颜色,它会自动调整"位置"和"点",基于颜色的数量。默认类型将是轴向。
let configWithColors = CCGradientConfiguration(colors: [UIColors])

  1. 与上述相同,它还接受CCGradient类型,可以是"axial"、"radial"或"conic"。
let configWithColorsAndType = CCGradientConfiguration(colors: [UIColors],
                                                      type: CCGradientType)

  1. 与上述相同,它还接受位置数组,指示每种颜色覆盖的区域。数组中的每个数字应在0到1之间,例如,具有两个颜色和位置=[0.25, 0.75]的渐变将呈现两个颜色,其中一个颜色覆盖视图的25%,另一个覆盖75%。
let configWithColorsAndTypeAndLocations = CCGradientConfiguration(colors: [UIColor],
                                                                  type: CCGradientType,
                                                                  locations: [CGFloat])

  1. 与上述相同,它还接受点数组。此数组需要有两个CGPoints,并在单位坐标系中定义(在[0,0]左下角和[1,1]右上角之间)。
let configWithColorsAndTypeAndLocationsAndPoints = CCGradientConfiguration(colors: [UIColor],
                                                                           type: CCGradientType ,
                                                                           locations: [CGFloat],
                                                                           points: [CGPoint])

  1. 使用颜色数组,再加上CCGradientDirection,它是以下之一
public enum CCGradientDirection {
    case topToBottom
    case leftToRight
    case rightToLeft
    case bottomToTop
    case growFromCenter
    case shrinkToCenter
}

并用它初始化CCGradientConfiguration。

let configWithColorsAndDirection = CCGradientConfiguration(colors: [UIColors], 
                                                           direction: CCGradientDirection)

  1. 与上述相同,它还接受位置数组。
let configWithColorsAndDirectionAndLocations = CCGradientConfiguration(colors: [UIColor],
                                                                       direction: CCGradientDirection,
                                                                       locations: [CGFloat])

添加视图

  1. 在Storyboard中向场景添加一个UIView,将其类更改为CCGradientView。根据您的集成方式,您可能需要将Module更改为CCGradient。您也可以通过代码添加视图。只需调用CCGradientViewinit(frame: CGRect)即可。
  2. 设置CCGradientView的配置并实现唯一的配置方法。

func configurationForGradientView(_ gradientView: CCGradientView) -> CCGradientConfiguration

以下是一个完整示例。

class ViewController: UIViewController {
    @IBOutlet weak var gradientView: CCGradientView!

    override func viewDidLoad() {
        super.viewDidLoad()
        //set configuration to be self
        gradientView.configuration = self
    }
}
extension ViewController: CCGradientViewConfiguration {    
    func configurationForGradientView(_ gradientView: CCGradientView) -> CCGradientConfiguration {
        return CCGradientConfiguration(colors: CCGradientColors.Instagram,
                                       direction: .rightToLeft)
    }
}

可供使用的渐变颜色

CCGradient内置了380多个可用的渐变。它们是从https://github.com/Ghosh/uiGradients移植过来的。您可以在其中看到大多数颜色:https://uigradients.com。感谢Ghosh

要使用其中一个预定义的渐变颜色,您只需要创建一个配置。对于颜色数组,您需要传递来自CCGradientColors中的一个预定义颜色。

let configuration = CCGradientConfiguration(colors: CCGradientColors.MoonPurple)

同样,您可以在其中看到大多数的渐变颜色:https://uigradients.com

创意无限

您可以通过配置来发挥创意,得到像颜色轮这样的效果。

color-wheel

CCGradientConfiguration(colors: CCGradientColors.ColorWheel,
                        type: CCGradientType.conic,
                        points: [CGPoint(x: 0.5, y: 0.5),
                        CGPoint(x: 1, y: 1)])

或者,您可以屏蔽渐变视图,得到以下的效果。

pride

class ViewController: UIViewController {
    @IBOutlet weak var gradientView: CCGradientView!
    @IBOutlet weak var label: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        gradientView.mask = label
        gradientView.configuration = self
    }
}

extension ViewController: CCGradientViewConfiguration {
    func configurationForGradientView(_ gradientView: CCGradientView) -> CCGradientConfiguration {
        return CCGradientConfiguration(colors: CCGradientColors.LGBT)
    }
}

安装

手动操作

您可以将必要文件拖放到“Sources”文件夹中,以添加到项目中。

  • CCGradientView.swift - 必要

  • CCGradientConfiguration.swift - 必要

  • CCGradientColors.swift - 可选,它包含所有内置渐变颜色

  • CCColors.swift - 可选,它包含CSS颜色名称,在CCGradientColors.swift中使用,因此如果您使用CCGradientColors.swift,则需要此文件。

Cocoapods

target 'MyApp' do
pod 'CCGradient', '~> 1.0'
end

当您想使用CCGradientView时,请导入CCGradient

import CCGradient

进行中

  • 可以动画化渐变的位置和颜色。
  • 更多可使用颜色即将到来。

许可

MIT许可.