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. 从浏览器地址栏输入url到显示页面的步骤

      在浏览器地址栏输入URL 浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤 HTTP1.0提供Expires,值为一个绝对时间表示缓存新鲜日期 HTTP1.1增加了Cache-Cont ...

  2. 动态初始化swiper时,轮播图划不动得各种bug解决方法

    var mybanner = new Swiper('.i-gd-banner', { speed: 500, loop: true, observer:true,//修改swiper自己或子元素时, ...

  3. 利用python列出当前目录下的所有文件

    问题 当一个目录下有很多文件夹或者文件,我们想分析各个文件的名字,这时就可以写一个函数,列出当前目录下所有文件名字. 代码 src_dir = r'./' # 源文件目录地址 def list_all ...

  4. Anaconda环境配置常用命令

    1. 新建一个环境: conda create -n ForPytorch python=3.6 该行命令新建了一个叫做ForPytorch的环境,该环境使用的python是3.6版本.新建一个环境的 ...

  5. MariaDB(第三章)select

    基本查询 ``` --查询基本使用(条件,排序,聚合函数,分组,分页) --创建学生表 create table students ( id int unsigned not null auto_in ...

  6. 【Linux开发】linux设备驱动归纳总结(三):4.ioctl的实现

    linux设备驱动归纳总结(三):4.ioctl的实现 一.ioctl的简介: 虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是 ...

  7. Linux基础命令训练题型(上)

    1.创建目录/data/dongdaxia,并且在该目录下创建文件dongdaxia.txt,然后在文件dongdaxia.txt里写入内容“inet 192.168.221.132  netmask ...

  8. idea导入eclipse的web项目

    idea导入eclipse的web项目 一.导入自己的web项目      步骤:File->New->Project from Existing Source... 二.选择项目的所在位 ...

  9. CentOS7安装rabbitMQ,并实现浏览器访问

    第一.安装wget yum install wget 第二.下载erlang和rabbitmq-server的rpm (1)在/usr/local下创建目录rabbitMQ,并进入该目录 (2)下载 ...

  10. AC自动机模版

    我以前一直觉得AC自动机就是我打一个代码,然后可以帮我自动AC题目,现在才知道原来是处理字符串的一个有意思的东西,然后我们现在就来看一下这个东西 1464: [视频][AC自动机]统计单词出现个数 时 ...