顏色框架Hue使用方法

2022-07-23 05:09:09 字數 3511 閱讀 9070

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 

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

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)) /// 獲取指定座標位置的顏色

stylus css 框架使用方法

stylus是一款需要編譯的css語言,所以其本身檔案不能被html直接呼叫,需要要編譯為css檔案後再進行日常的載入。stylus是一款優秀的css編譯語言,需要node.js支援,第一步需要安裝node.js 問題 windows除錯時ctrl d無效果 ctrl c退出?怎樣直接在window...

集合框架的使用方法

list與set都是介面collection的子介面,collection源 中有一些幫助實現基本的訪問操作的抽象方法,主要有add addall iterator remove size 在collection的子介面list set以及子類arraylist linkedlist vector ...

dubbo框架的使用方法。。。

一 dubbo使用須知。1.所有的service層必須要使用service註解 之前用的spring框架的,現在用dubbo框架所提供的 service註解 service timeout 單位是秒 2.在配置dubbo埠號的時候 只是provider專案和consumer專案直接資料通訊的時候所必...