HexColor
//
// HexColor.swift
// HexColor
//
// Created by Tuomas Artman on 1.9.2014.
// Copyright (c) 2014 Tuomas Artman. All rights reserved.
// import Foundation
import UIKit extension UIColor { /// Initializes UIColor with an integer.
///
/// - parameter value: The integer value of the color. E.g. 0xFF0000 is red, 0x0000FF is blue.
public convenience init(_ value: Int) {
let components = getColorComponents(value)
self.init(red: components.red, green: components.green, blue: components.blue, alpha: 1.0)
} /// Initializes UIColor with an integer and alpha value.
///
/// - parameter value: The integer value of the color. E.g. 0xFF0000 is red, 0x0000FF is blue.
/// - parameter alpha: The alpha value.
public convenience init(_ value: Int, alpha: CGFloat) {
let components = getColorComponents(value)
self.init(red: components.red, green: components.green, blue: components.blue, alpha: alpha)
} /// Creates a new color with the given alpha value
///
/// For example, (0xFF0000).alpha(0.5) defines a red color with 50% opacity.
///
/// - returns: A UIColor representation of the Int with the given alpha value
public func alpha(value:CGFloat) -> UIKit.UIColor {
var red: CGFloat = 0
var green: CGFloat = 0
var blue: CGFloat = 0
var alpha: CGFloat = 0 self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) return UIKit.UIColor(red: red, green: green, blue: blue, alpha: value)
} /// Mixes the color with another color
///
/// - parameter color: The color to mix with
/// - parameter amount: The amount (0-1) to mix the new color in.
/// - returns: A new UIColor instance representing the resulting color
public func mixWithColor(color:UIColor, amount:Float) -> UIColor {
var comp1: [CGFloat] = Array(count: 4, repeatedValue: 0);
self.getRed(&comp1[0], green: &comp1[1], blue: &comp1[2], alpha: &comp1[3]) var comp2: [CGFloat] = Array(count: 4, repeatedValue: 0);
color.getRed(&comp2[0], green: &comp2[1], blue: &comp2[2], alpha: &comp2[3]) var comp: [CGFloat] = Array(count: 4, repeatedValue: 0);
for i in 0...3 {
comp[i] = comp1[i] + (comp2[i] - comp1[i]) * CGFloat(amount)
} return UIColor(red:comp[0], green: comp[1], blue: comp[2], alpha: comp[3])
}
} private func getColorComponents(value: Int) -> (red: CGFloat, green: CGFloat, blue: CGFloat) {
let r = CGFloat(value >> 16 & 0xFF) / 255.0
let g = CGFloat(value >> 8 & 0xFF) / 255.0
let b = CGFloat(value & 0xFF) / 255.0 return (r, g, b)
}
github地址:https://github.com/artman/HexColor
HexColor的更多相关文章
- 【blade利刃出鞘】一起进入移动端webapp开发吧
前言 在移动浪潮袭来的时候,小钗有幸进入框架组做webapp框架开发,过程中遇到了移动端的各种坑,也产生了各种激情,就我们公司的发展历程来说 第一阶段:使用传统方式开发移动站点,少量引入HTML5元素 ...
- UITabBarController 基本定制
UITabBarController 定制 特点 用法 1.准备好你的tabBar图片及其他图片(哈哈哈!!!!),我的图片都放在了Assets.xcassets中. 2.导入本工程中的Categro ...
- IOS开发基础知识--碎片49
1:iOS项目配置文件info.plist文件解析 Localization native development region本地化 Executable file可执行文件路径 Bundle id ...
- jquery颜色选择器
本站下载 第二种:纯JAVASCRIPT: <html> <head> <meta http-equiv="Content-Type" content ...
- IOS开发基础知识--碎片37
1:iOS 使用NJKWebViewProgress做webview进度条 引入头文件: #import "NJKWebViewProgressView.h" #import &q ...
- jQuery Colorpicker Spectrum api 中文 文档 属性 事件 方法
jQuery Colorpicker Spectrum 所需的CSS和JavaScript文件: <script src='spectrum.js'></script> < ...
- iOS根据16进制的色号来设置颜色,适合封装工具类
iOS中有时候UI给的一个色号就像 #54e1b7 这个,而我们一般设置颜色都是根据RBG来设置的,所以这里需要把这个16进制的色号转为RGB值,这里我们就使用一下的方法来调用设置颜色. + (UIC ...
- iOS 多快好省的宏定义
http://my.oschina.net/yongbin45/blog/150149 // 字符串:#ifndef nilToEmpty#define nilToEmpty(object) (obj ...
- TweenMax参数说明
TweenMax 建立在 TweenLite 和 TweenFilterLite 基础之上,因此,又揉合了这二者的功能,使得功能更加的齐备,但是如果说易用性,觉得还是 TweenLite 来得方便一些 ...
随机推荐
- poj 1088 滑雪问题
滑雪问题 import java.util.Scanner; public class Main{ static int a[][],r,c; public static void main(Stri ...
- Android 打造自己的个性化应用(四):仿墨迹天气实现-->自定义扩展名的zip格式的皮肤
在这里谈一下墨迹天气的换肤实现方式,不过首先声明我只是通过反编译以及参考了一些网上其他资料的方式推测出的换肤原理, 在这里只供参考. 若大家有更好的方式, 欢迎交流. 墨迹天气下载的皮肤就是一个zip ...
- Mob短信验证的配置的解释
原文地址:http://www.jb51.net/article/84946.htm 关于mob短信验证的解释: mob官方是这样写的: repositories{ flatDir{ dirs 'li ...
- HttpURLConnection 下载代码
private int downloadFile(final String apkurl, final String apkname) { Log.e(LOGTAG, "downloadAp ...
- Java学习——接口Interface
接口: 初期理解可以认为是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示.class用于定义类interface 用于定义接口 接口定义时,格式特点:1,接口中常量见定 ...
- [转] SQL Server游标的使用
游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的.而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服. ...
- 【SQL语句】 - Ctrl+3 查询表属性的存储过程 [sp_select_talberowName]
/**-- ============================================= Author: xftCteateDate: 2013-10-11Description:查看表 ...
- pom.xml配置
1:头部引用 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3 ...
- C++服务器设计(五):多设备类型及消息事件管理
在传统的服务器系统中,服务器仅针对接收到的客户端消息进行解析,并处理后回复响应.在该过程中服务器并不会主动判断客户端类型.但在现实中,往往存在多种类型的客户端设备,比如物联网下的智能家居系统,就存在智 ...
- 嵌入式Linux LED小灯点亮实验
问:怎么写LED驱动程序? 1.搭建一个字符驱动的框架(上一节已经完成) 2.完善硬件的操作 问:驱动里操作硬件寄存器与单片机操作硬件寄存器有什么不一样的地方? 答:单片机操作的寄存器地址是物理地址, ...