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 来得方便一些 ...
随机推荐
- Spark Streaming--实战篇
摘要: Sprak Streaming属于Saprk API的扩展,支持实时数据流(live data streams)的可扩展,高吞吐(hight-throughput) 容错(fault ...
- Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8570428 通过前面几篇文章的学习,我们知道了 ...
- Linux经常使用命令大全
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本号 dmidecode -q 显示硬件系统部件 - (SM ...
- [springmvc+mybatis][关于这两个框架的学习,我想说]
关于学习笔记 在对java web有了一定的了解后,这两个框架没怎么写学习笔记了…毕竟项目驱动型…… 关于学习资料 强烈推荐传智播客的燕青讲解的 让我对这种培训班教育的资料刮目相看(不过还是千万别去这 ...
- windows下adb(android调试桥)基本命令(持续更新。。。)
前言:刚开始学习android(坚持每天1篇笔记哈^_^),比较实用的命令是adb,所以就先学习这些,主要用真机调试,模拟器用的是genymotion,所以emulator暂时不大需要哈,可以后续再补 ...
- Winform开发之窗体传值
Winform的窗体之间的数据传递是开发的必备技术,下面介绍几种典型的传值方法 1.构造函数传值,但这种方法是单向的(推荐) 上代码,先传值 private void button2_Click(ob ...
- SQL Server -SET QUOTED_IDENTIFIER
SET QUOTED_IDENTIFIER ON SQL SERVER的联机丛书的解释: “当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔 ...
- sqlcommand循环内使用
using (SqlConnection conn = new SqlConnection()) { SqlCommand comm= new SqlCommand(); conn.Connectio ...
- poi HSSFRichTextString 对cell中的每一段文字设置字体
HSSFRichTextString ts= new HSSFRichTextString(" 经审核,我司已同意其出库申请.请你部按规定将托管银行承兑汇票办理出库." + &qu ...
- (原)使用opencv的warpAffine函数对图像进行旋转
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5070576.html 参考网址: http://stackoverflow.com/questions ...