//
// 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的更多相关文章

  1. 【blade利刃出鞘】一起进入移动端webapp开发吧

    前言 在移动浪潮袭来的时候,小钗有幸进入框架组做webapp框架开发,过程中遇到了移动端的各种坑,也产生了各种激情,就我们公司的发展历程来说 第一阶段:使用传统方式开发移动站点,少量引入HTML5元素 ...

  2. UITabBarController 基本定制

    UITabBarController 定制 特点 用法 1.准备好你的tabBar图片及其他图片(哈哈哈!!!!),我的图片都放在了Assets.xcassets中. 2.导入本工程中的Categro ...

  3. IOS开发基础知识--碎片49

    1:iOS项目配置文件info.plist文件解析 Localization native development region本地化 Executable file可执行文件路径 Bundle id ...

  4. jquery颜色选择器

    本站下载 第二种:纯JAVASCRIPT: <html> <head> <meta http-equiv="Content-Type" content ...

  5. IOS开发基础知识--碎片37

    1:iOS 使用NJKWebViewProgress做webview进度条 引入头文件: #import "NJKWebViewProgressView.h" #import &q ...

  6. jQuery Colorpicker Spectrum api 中文 文档 属性 事件 方法

    jQuery Colorpicker Spectrum 所需的CSS和JavaScript文件: <script src='spectrum.js'></script> < ...

  7. iOS根据16进制的色号来设置颜色,适合封装工具类

    iOS中有时候UI给的一个色号就像 #54e1b7 这个,而我们一般设置颜色都是根据RBG来设置的,所以这里需要把这个16进制的色号转为RGB值,这里我们就使用一下的方法来调用设置颜色. + (UIC ...

  8. iOS 多快好省的宏定义

    http://my.oschina.net/yongbin45/blog/150149 // 字符串:#ifndef nilToEmpty#define nilToEmpty(object) (obj ...

  9. TweenMax参数说明

    TweenMax 建立在 TweenLite 和 TweenFilterLite 基础之上,因此,又揉合了这二者的功能,使得功能更加的齐备,但是如果说易用性,觉得还是 TweenLite 来得方便一些 ...

随机推荐

  1. C#操作IE

    操作IE主要使用两个Com Dll: 1.Microsoft Internet Controls 2.Microsoft HTML Object Library 使用Microsoft Interne ...

  2. Qt导出Excel的简单实现

    QAxObject对COM对象进行了封装,QAxObject派生自QAxBase,而后者提供了一组API通过IUnknown(不清楚IUnknown的同学可以去看看COM对象模型)指针直接访问COM对 ...

  3. HTML基础知识笔记(二)

    HTML <img>标签 语法: <img src="图片地址" alt="下载失败时的替换文本" title = "提示文本&qu ...

  4. C#利用QrCode.Net生成二维码(Qr码)

    在网上很多应用都是用二维码来分享网址或者其它的信息.尤其在移动领域,二维码更是有很大的应用场景.因为项目的需要,需要在网站中增加一个生成二维码分析网址的功能,在谷歌大幅度抽筋的情况下无奈使用百度.百度 ...

  5. keycode(来自互联网)

  6. iOS 判断设备是否越狱

    我们在开发过程中,需要知道设备是否越狱,在网上查看很多资料,为此封装一些判断的方法. 上代码,不解释: .h文件 #import <Foundation/Foundation.h> @in ...

  7. 截取NSString字符串

    NSString类中提供了这样三个方法用于获取子字符串: – substringFromIndex: – substringWithRange: – substringToIndex: 具体的使用见下 ...

  8. javaScript给元素添加多个class

    <html> <head> <style type="text/css"> .div2{ font-size:16px; color:orang ...

  9. uvA Flooded!

    Description To enable homebuyers to estimate the cost of flood insurance, a real-estate firm provide ...

  10. (原)不明白JNI指针调用顺序

    很不明白JNI里面获取指针的顺序(可能这样描述不太恰当吧). 下面按照传入指针的顺序的代码一跑就崩溃.如下: JNIEXPORT jint JNICALL Java_com_example_X_XX_ ...