顏色框架Hue使用方法

Hue地址

如果有疑問或者想探討iOS開發(fā)相關(guān)的技術(shù)算灸,十分歡迎省艳。

1. cocoapods安裝Hue

pod "Hue"

2. 導入框架

import Hue

3. 將十六進制數(shù)字變成對應的顏色值

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

4. 顏色轉(zhuǎn)顏色值

let hex1 = UIColor.red.hex(true) /// 將顏色轉(zhuǎn)為十六進制洛二,前面有#號
let hex2 = UIColor.red.hex(false) /// 將顏色轉(zhuǎn)為十六進制,前面沒有#號
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. 區(qū)別顏色的深淺

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數(shù)組個數(shù)是4逸爵,[R,G,B,A]具滴,三基色與透明度,但是在這個方法中的guard判斷中是根據(jù)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. 設(shè)置漸變顏色

let gradient = [UIColor.red, UIColor.yellow, UIColor.blue,UIColor.green].gradient { (gra) -> CAGradientLayer in
    gra.frame = self.view.bounds /// 設(shè)置漸變的區(qū)域
    gra.locations = [0.2, 0.4, 0.6] /// 設(shè)置漸變顏色的分割線
    gra.startPoint = .init(x: 0, y: 0.5) /// 設(shè)置漸變顏色的起始位置(0,0)左上角到(1,1)右下角
    gra.endPoint = .init(x: 1, y: 0.5) /// 設(shè)置漸變顏色的結(jié)束位置(0,0)左上角到(1,1)右下角
    return gra
}
view.layer.addSublayer(gradient) /// 將漸變圖層添加到視圖上

8. 顏色混合

/// 給顏色增加指定色調(diào)與透明度
///
/// - Parameters:
///   - hue: 需要增加的色調(diào)瓷胧,不是最終的色調(diào)
///   - saturation: 需要增加的飽和度显拳,不是最終的飽和度
///   - brightness: 需要增加的亮度,不是最終的亮度
///   - alpha: 需要增加的透明度搓萧,不是最終的透明度
/// - Returns: 添加色調(diào)之后的顏色
public func addHue(_ hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat) -> UIColor

/// 將一種顏色的色調(diào)增加到另一種顏色中杂数,不包含透明度
///
/// - Parameter color: 需要添加到另一種顏色中的顏色
/// - Returns: 混合之后的顏色
public func addHSB(color: UIColor) -> UIColor

/// 將一種顏色的色調(diào)增加到另一種顏色中宛畦,包含透明度
///
/// - 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. 獲取圖片的相關(guān)顏色(總感覺不是太準)

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

/// 示例
let colors = UIImage.init().colors() /// 獲取相關(guān)顏色的元組
let bgColor = colors.background /// 背景顏色
let primary = colors.primary /// 主要顏色
let secondary = colors.secondary /// 次要顏色
let detail = colors.detail /// 細節(jié)顏色
let color = colors.background.color(at: CGPoint.init(x: 0, y: 0)) /// 獲取圖片指定坐標位置的顏色
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市罕邀,隨后出現(xiàn)的幾起案子畅形,更是在濱河造成了極大的恐慌,老刑警劉巖诉探,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件日熬,死亡現(xiàn)場離奇詭異,居然都是意外死亡阵具,警方通過查閱死者的電腦和手機碍遍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阳液,“玉大人,你說我怎么就攤上這事揣炕×泵螅” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵畸陡,是天一觀的道長鹰溜。 經(jīng)常有香客問我,道長丁恭,這世上最難降的妖魔是什么曹动? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮牲览,結(jié)果婚禮上墓陈,老公的妹妹穿的比我還像新娘。我一直安慰自己第献,他們只是感情好贡必,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庸毫,像睡著了一般仔拟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上飒赃,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天利花,我揣著相機與錄音科侈,去河邊找鬼。 笑死炒事,一個胖子當著我的面吹牛臀栈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播羡洛,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挂脑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了欲侮?” 一聲冷哼從身側(cè)響起崭闲,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎威蕉,沒想到半個月后刁俭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡韧涨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年牍戚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虑粥。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡如孝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娩贷,到底是詐尸還是另有隱情第晰,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布彬祖,位于F島的核電站茁瘦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏储笑。R本人自食惡果不足惜甜熔,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望突倍。 院中可真熱鬧腔稀,春花似錦、人聲如沸赘方。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窄陡。三九已至炕淮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跳夭,已是汗流浹背涂圆。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工们镜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人润歉。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓模狭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親踩衩。 傳聞我的和親對象是個殘疾皇子嚼鹉,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容