Hue地址

如果有疑问或者想探讨iOS开发相关的技术,十分欢迎。

1. cocoapods安装Hue

pod "Hue"

2. 导入框架

import Hue

3. 将十六进制数字变成对应的颜色值

let color = UIColor.init(hex: "#DDDDDD")

4. 颜色转颜色值

let hex1 = UIColor.red.hex(true) /// 将颜色转为十六进制,前面有#号
let hex2 = UIColor.red.hex(false) /// 将颜色转为十六进制,前面没有#号
let red = UIColor.red.redComponent /// 获取颜色中红色的色值,0-1
let green = UIColor.red.greenComponent /// 获取颜色中绿色的色值,0-1
let blue = UIColor.red.blueComponent /// 获取颜色中蓝色的色值,0-1
let alpla = UIColor.red.alphaComponent /// 获取颜色的透明度,0-1

5. 区别颜色的深浅

let isDark = UIColor.red.isDark /// 是否是暗色的
let isWhite = UIColor.red.isWhite /// 是否是白色的,或者接近白色
let isBlack = UIColor.red.isBlack /// 是否是黑色,或者接近黑色
let isBlackOrWhite = UIColor.red.isBlackOrWhite /// 是否是白色或黑色,或者接近白色或黑色

注意:这几个方法依赖于Hue以下方法internal func rgbComponents() -> [CGFloat],但是这个方法中的guard语法判断是有一点失误的,不知道是swift4.0更新的原因还是编写时的失误,let RGB = cgColor.components这个语句获取的RGB数组个数是4,[R,G,B,A],三基色与透明度,但是在这个方法中的guard判断中是根据RGB.count == 3判断的,这样就会导致这个方法返回值一直是[0,0,0],这样就会导致判断失误,总是在判断是否是黑色,解决方法是将RGB.count == 3改为RGB.count == 4

6. 判断两个颜色是否类似(相近)

/// 一种颜色是否不同于另一种颜色,有明显差异
let isDistinctFrom = UIColor.red.isDistinctFrom(UIColor.red) /// 两种颜色形成对比,相差较大
let isContrasting = UIColor.red.isContrastingWith(UIColor.red)

7. 设置渐变颜色

let gradient = [UIColor.red, UIColor.yellow, UIColor.blue,UIColor.green].gradient { (gra) -> CAGradientLayer in
gra.frame = self.view.bounds /// 设置渐变的区域
gra.locations = [0.2, 0.4, 0.6] /// 设置渐变颜色的分割线
gra.startPoint = .init(x: 0, y: 0.5) /// 设置渐变颜色的起始位置(0,0)左上角到(1,1)右下角
gra.endPoint = .init(x: 1, y: 0.5) /// 设置渐变颜色的结束位置(0,0)左上角到(1,1)右下角
return gra
}
view.layer.addSublayer(gradient) /// 将渐变图层添加到视图上

8. 颜色混合

/// 给颜色增加指定色调与透明度
///
/// - Parameters:
/// - hue: 需要增加的色调,不是最终的色调
/// - saturation: 需要增加的饱和度,不是最终的饱和度
/// - brightness: 需要增加的亮度,不是最终的亮度
/// - alpha: 需要增加的透明度,不是最终的透明度
/// - Returns: 添加色调之后的颜色
public func addHue(_ hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat) -> UIColor /// 将一种颜色的色调增加到另一种颜色中,不包含透明度
///
/// - Parameter color: 需要添加到另一种颜色中的颜色
/// - Returns: 混合之后的颜色
public func addHSB(color: UIColor) -> UIColor /// 将一种颜色的色调增加到另一种颜色中,包含透明度
///
/// - Parameter color: 需要添加到另一种颜色中的颜色
/// - Returns: 混合之后的颜色
public func addHSBA(color: UIColor) -> UIColor /// 给颜色增加三基色与透明度
///
/// - Parameters:
/// - red: 增加红色色值,并非最终的红色色值
/// - green: 增加绿色色值,并非最终的绿色色值
/// - blue: 增加蓝色色值,并非最终的蓝色色值
/// - alpha: 增加的透明度,并非最终的透明度
/// - Returns: 增加三基色之后的颜色
public func addRed(_ red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) -> UIColor /// 将一种颜色的色值增加到另一种颜色中,不包含透明度
///
/// - Parameter color: 需要添加到另一种颜色中的颜色
/// - Returns: 混合之后的颜色
public func addRGB(color: UIColor) -> UIColor /// 将一种颜色的色值增加到另一种颜色中,包含透明度
///
/// - Parameter color: 需要添加到另一种颜色中的颜色
/// - Returns: 混合之后的颜色
public func addRGBA(_ color: UIColor) -> UIColor

9. 获取图片的相关颜色(总感觉不是太准)

public func colors(_ scaleDownSize: CGSize? = nil) -> (background: UIColor, primary: UIColor, secondary: UIColor, detail: UIColor)

/// 示例
let colors = UIImage.init().colors() /// 获取相关颜色的元组
let bgColor = colors.background /// 背景颜色
let primary = colors.primary /// 主要颜色
let secondary = colors.secondary /// 次要颜色
let detail = colors.detail /// 细节颜色
let color = colors.background.color(at: CGPoint.init(x: 0, y: 0)) /// 获取图片指定坐标位置的颜色

颜色框架Hue使用方法的更多相关文章

  1. 颜色框架Hue相关使用方法

    Hue地址 cocoapods安装Hue pod "Hue" 导入框架 import Hue 将十六进制数字变成对应的颜色值 let color = UIColor.init(he ...

  2. [BS-19]更改UITextField的placeholder文字颜色的5种方法

    更改UITextField的placeholder文字颜色的5种方法 想要达到的目标是:一个页面上有多个UITextField,当用户聚焦某textField时,该文本框的placeholder的文字 ...

  3. C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法

    C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 pr ...

  4. python 输出颜色与样式的方法

    上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python 输出颜色的样式与方法的文章 ...

  5. tornado框架的get方法传递参数

    tornado框架的get方法传递参数,代码: # encoding: utf-8 """ @version: ?? @author: andu99 @contact: ...

  6. 【CI3.1】CI框架简单使用方法

    CI框架简单使用方法 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法 ...

  7. Python单元测试框架unittest使用方法讲解

    这篇文章主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述.命令行接口.测试案例自动搜索.创建测试代码.构建测试套件方法等内容,需要的朋友可以参考下   概 ...

  8. Android(java)学习笔记106:Android设置文本颜色的4种方法

    1. Android设置文本颜色的4种方法: (1)利用系统自带的颜色类: tv.setTextColor(android.graphics.Color.RED); (2)数字颜色表示: tv.set ...

  9. JS实现随机颜色的3种方法与颜色格式的转化

    JS实现随机颜色的3种方法与颜色格式的转化   随机颜色和颜色格式是我们在开发中经常要用到的一个小功能,网上相关的资料也很多,想着有必要总结一下自己的经验.所以这篇文章主要介绍了JS实现随机颜色的3种 ...

随机推荐

  1. [Java]算术表达式求值之二(中序表达式转后序表达式方案,支持小数)

    Inlet类,入口类,这个类的主要用途是验证用户输入的算术表达式: package com.hy; import java.io.BufferedReader; import java.io.IOEx ...

  2. MySQL获取距离

    BEGIN ) ), ) ) ) ) ),))),); END

  3. 三、SpringBoot启动时JDBC报错:You must configure either the server or JDBC driver (via the serverTimezone configuration property)

    错误提示: Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connectio ...

  4. 九、封装登录POST请求、登录后POST请求以及GET请求

    一.封装登录后POST请求以及GET请求 /** * 全局运行时环境参数管理器 */ public static Map<String, String> BASE_GLOBAL_MAP; ...

  5. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_2 响应之返回值是String类型

    返回字符串 新建一个response的页面 新建后台Controller类 视图解析器配置的前缀地址 是WEB-INF下的pages下的页面. 创建pages文件夹在下面创建success.jsp页面 ...

  6. docker批量删除容器、镜像(转载)

    1.删除所有容器 docker rm `docker ps -a -q` 2.删除所有镜像 docker rmi `docker images -q` 3.按条件删除镜像 没有打标签 docker r ...

  7. Numpy 库

    可以直接通过pip安装. pip install numpy 1 NumPy的数值类型 每一种数据类型都有相应的转换函数.使用dtype属性可以查看数组的数据类型.如下. 2 数组操作 使用arang ...

  8. linux之文件查找find grep详解,以及压缩归档

    .find linux里的实时查找工具,通过制定路径完成文件查找. find[options]...[查找路径] [查找条件] [处理动作] 查找路径:查找的位置,默认是当前文件夹. 查找条件:指定查 ...

  9. Xcode真机报错clang: error: linker command failed with exit code 1 (use -v to see invocation)

    出现这种错误,如下图所示,搜索bitcode,置为NO即可.

  10. etcd安全集群三节点扩容至四个节点

    规划:先安装三台组建集群,然后扩容一个安全节点进来 .环境: 三台centos7. 主机 192.168.0.91 192.168.0.92 192.168.0.93 都关闭防火墙 都关闭selinu ...