以编程方式访问Xcode颜色选择器的“铅笔”选项

时间:2018-08-03 22:39:46

标签: ios swift xcode uikit

当我在情节提要板上选择按钮的背景色时,可以使用颜色选择器小部件。选项卡之一称为“铅笔”。

此标签显示排列的彩色铅笔的图片。一支铅笔的颜色为“水银”。

是否可以通过UIColor对象访问此预定义的颜色?

例如

let myColor = UIColor(pencils: "mercury")

3 个答案:

答案 0 :(得分:4)

您可以通过以下方式在代码中访问水星颜色:

let myColor = Color

enter image description here

单击白色正方形,然后单击其他,最后可以在铅笔选项卡中选择水星颜色。

enter image description here

答案 1 :(得分:0)

使用Fkzm的答案,以下是所有颜色。

public struct XCodePencilColorPalette {

    private init() { }

    public static let licorice = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
    public static let lead = #colorLiteral(red: 0.1298420429, green: 0.1298461258, blue: 0.1298439503, alpha: 1)
    public static let tungsten = #colorLiteral(red: 0.2605174184, green: 0.2605243921, blue: 0.260520637, alpha: 1)
    public static let iron = #colorLiteral(red: 0.370555222, green: 0.3705646992, blue: 0.3705595732, alpha: 1)
    public static let steel = #colorLiteral(red: 0.4756349325, green: 0.4756467342, blue: 0.4756404161, alpha: 1)
    public static let tin = #colorLiteral(red: 0.5704585314, green: 0.5704723597, blue: 0.5704649091, alpha: 1)
    public static let nickel = #colorLiteral(red: 0.5741485357, green: 0.5741624236, blue: 0.574154973, alpha: 1)
    public static let aluminum = #colorLiteral(red: 0.6642242074, green: 0.6642400622, blue: 0.6642315388, alpha: 1)
    public static let magnesium = #colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1)
    public static let silver = #colorLiteral(red: 0.8374180198, green: 0.8374378085, blue: 0.8374271393, alpha: 1)
    public static let mercury = #colorLiteral(red: 0.921431005, green: 0.9214526415, blue: 0.9214410186, alpha: 1)
    public static let snow = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    public static let cayenne = #colorLiteral(red: 0.5807225108, green: 0.066734083, blue: 0, alpha: 1)
    public static let mocha = #colorLiteral(red: 0.5787474513, green: 0.3215198815, blue: 0, alpha: 1)
    public static let asparagus = #colorLiteral(red: 0.5738074183, green: 0.5655357838, blue: 0, alpha: 1)
    public static let fern = #colorLiteral(red: 0.3084011078, green: 0.5618229508, blue: 0, alpha: 1)
    public static let clover = #colorLiteral(red: 0, green: 0.5603182912, blue: 0, alpha: 1)
    public static let moss = #colorLiteral(red: 0, green: 0.5628422499, blue: 0.3188166618, alpha: 1)
    public static let teal = #colorLiteral(red: 0, green: 0.5690457821, blue: 0.5746168494, alpha: 1)
    public static let ocean = #colorLiteral(red: 0, green: 0.3285208941, blue: 0.5748849511, alpha: 1)
    public static let midnight = #colorLiteral(red: 0.004859850742, green: 0.09608627111, blue: 0.5749928951, alpha: 1)
    public static let eggplant = #colorLiteral(red: 0.3236978054, green: 0.1063579395, blue: 0.574860394, alpha: 1)
    public static let plum = #colorLiteral(red: 0.5810584426, green: 0.1285524964, blue: 0.5745313764, alpha: 1)
    public static let maroon = #colorLiteral(red: 0.5808190107, green: 0.0884276256, blue: 0.3186392188, alpha: 1)
    public static let maraschino = #colorLiteral(red: 1, green: 0.1491314173, blue: 0, alpha: 1)
    public static let tangerine = #colorLiteral(red: 1, green: 0.5781051517, blue: 0, alpha: 1)
    public static let lemon = #colorLiteral(red: 0.9994240403, green: 0.9855536819, blue: 0, alpha: 1)
    public static let lime = #colorLiteral(red: 0.5563425422, green: 0.9793455005, blue: 0, alpha: 1)
    public static let spring = #colorLiteral(red: 0, green: 0.9768045545, blue: 0, alpha: 1)
    public static let seaFoam = #colorLiteral(red: 0, green: 0.9810667634, blue: 0.5736914277, alpha: 1)
    public static let turquoise = #colorLiteral(red: 0, green: 0.9914394021, blue: 1, alpha: 1)
    public static let aqua = #colorLiteral(red: 0, green: 0.5898008943, blue: 1, alpha: 1)
    public static let blueberry = #colorLiteral(red: 0.01680417731, green: 0.1983509958, blue: 1, alpha: 1)
    public static let grape = #colorLiteral(red: 0.5818830132, green: 0.2156915367, blue: 1, alpha: 1)
    public static let magenta = #colorLiteral(red: 1, green: 0.2527923882, blue: 1, alpha: 1)
    public static let strawberry = #colorLiteral(red: 1, green: 0.1857388616, blue: 0.5733950138, alpha: 1)
    public static let salmon = #colorLiteral(red: 1, green: 0.4932718873, blue: 0.4739984274, alpha: 1)
    public static let cantaloupe = #colorLiteral(red: 1, green: 0.8323456645, blue: 0.4732058644, alpha: 1)
    public static let banana = #colorLiteral(red: 0.9995340705, green: 0.988355577, blue: 0.4726552367, alpha: 1)
    public static let honeydew = #colorLiteral(red: 0.8321695924, green: 0.985483706, blue: 0.4733308554, alpha: 1)
    public static let flora = #colorLiteral(red: 0.4500938654, green: 0.9813225865, blue: 0.4743030667, alpha: 1)
    public static let spindrift = #colorLiteral(red: 0.4508578777, green: 0.9882974029, blue: 0.8376303315, alpha: 1)
    public static let ice = #colorLiteral(red: 0.4513868093, green: 0.9930960536, blue: 1, alpha: 1)
    public static let sky = #colorLiteral(red: 0.4620226622, green: 0.8382837176, blue: 1, alpha: 1)
    public static let orchid = #colorLiteral(red: 0.476841867, green: 0.5048075914, blue: 1, alpha: 1)
    public static let lavender = #colorLiteral(red: 0.8446564078, green: 0.5145705342, blue: 1, alpha: 1)
    public static let bubblegum = #colorLiteral(red: 1, green: 0.5212053061, blue: 1, alpha: 1)
    public static let carnation = #colorLiteral(red: 1, green: 0.5409764051, blue: 0.8473142982, alpha: 1)
}

答案 2 :(得分:0)

我想做同样的事情,所以我创建了一个自定义类。希望这可以节省一些时间:)

要访问,请调用PencilColors.instance ...

import Foundation
import UIKit

class PencilColors {

    static let instance = PencilColors()

    let pencilColors: [(color: UIColor, name: String, type: Int)] = [
        //instead of creating an enum in each project:
        //type 0 -> black and white
        //type 1 -> dark colors
        //type 2 -> medium colors
        //type 3 -> light colors

        (color: .black, name: "Black", type: 0),
        (color: #colorLiteral(red: 0.1298420429, green: 0.1298461258, blue: 0.1298439503, alpha: 1), name: "Lead", type: 0),
        (color: #colorLiteral(red: 0.2605174184, green: 0.2605243921, blue: 0.260520637, alpha: 1), name: "Tungsten", type: 0),
        (color: #colorLiteral(red: 0.370555222, green: 0.3705646992, blue: 0.3705595732, alpha: 1), name: "Iron", type: 0),
        (color: #colorLiteral(red: 0.4756349325, green: 0.4756467342, blue: 0.4756404161, alpha: 1), name: "Steel", type: 0),
        (color: #colorLiteral(red: 0.5704585314, green: 0.5704723597, blue: 0.5704649091, alpha: 1), name: "Tin", type: 0),
        (color: #colorLiteral(red: 0.5741485357, green: 0.5741624236, blue: 0.574154973, alpha: 1), name: "Nickel", type: 0),
        (color: #colorLiteral(red: 0.6642242074, green: 0.6642400622, blue: 0.6642315388, alpha: 1), name: "Aluminum", type: 0),
        (color: #colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), name: "Magnesium", type: 0),
        (color: #colorLiteral(red: 0.8374180198, green: 0.8374378085, blue: 0.8374271393, alpha: 1), name: "Silver", type: 0),
        (color: #colorLiteral(red: 0.921431005, green: 0.9214526415, blue: 0.9214410186, alpha: 1), name: "Mercury", type: 0),
        (color: .white, name: "White", type: 0),
        (color: #colorLiteral(red: 0.5807225108, green: 0.066734083, blue: 0, alpha: 1), name: "Cayenne", type: 1),
        (color: #colorLiteral(red: 0.5787474513, green: 0.3215198815, blue: 0, alpha: 1), name: "Mocha", type: 1),
        (color: #colorLiteral(red: 0.5738074183, green: 0.5655357838, blue: 0, alpha: 1), name: "Asparagus", type: 1),
        (color: #colorLiteral(red: 0.3084011078, green: 0.5618229508, blue: 0, alpha: 1), name: "Fern", type: 1),
        (color: #colorLiteral(red: 0, green: 0.5603182912, blue: 0, alpha: 1), name: "Clover", type: 1),
        (color: #colorLiteral(red: 0, green: 0.5628422499, blue: 0.3188166618, alpha: 1), name: "Moss", type: 1),
        (color: #colorLiteral(red: 0, green: 0.5690457821, blue: 0.5746168494, alpha: 1), name: "Teal", type: 1),
        (color: #colorLiteral(red: 0, green: 0.3285208941, blue: 0.5748849511, alpha: 1), name: "Ocean", type: 1),
        (color: #colorLiteral(red: 0.004859850742, green: 0.09608627111, blue: 0.5749928951, alpha: 1), name: "Midnight", type: 1),
        (color: #colorLiteral(red: 0.3236978054, green: 0.1063579395, blue: 0.574860394, alpha: 1), name: "Eggplant", type: 1),
        (color: #colorLiteral(red: 0.5810584426, green: 0.1285524964, blue: 0.5745313764, alpha: 1), name: "Plum", type: 1),
        (color: #colorLiteral(red: 0.5808190107, green: 0.0884276256, blue: 0.3186392188, alpha: 1), name: "Maroon", type: 1),
        (color: #colorLiteral(red: 1, green: 0.1491314173, blue: 0, alpha: 1), name: "Maraschino", type: 2),
        (color: #colorLiteral(red: 1, green: 0.5781051517, blue: 0, alpha: 1), name: "Tangerine", type: 2),
        (color: #colorLiteral(red: 0.9994240403, green: 0.9855536819, blue: 0, alpha: 1), name: "Lemon", type: 2),
        (color: #colorLiteral(red: 0.5563425422, green: 0.9793455005, blue: 0, alpha: 1), name: "Lime", type: 2),
        (color: #colorLiteral(red: 0, green: 0.9768045545, blue: 0, alpha: 1), name: "Spring", type: 2),
        (color: #colorLiteral(red: 0, green: 0.9810667634, blue: 0.5736914277, alpha: 1), name: "Sea Foam", type: 2),
        (color: #colorLiteral(red: 0, green: 0.9914394021, blue: 1, alpha: 1), name: "Turquoise", type: 2),
        (color: #colorLiteral(red: 0, green: 0.5898008943, blue: 1, alpha: 1), name: "Aqua", type: 2),
        (color: #colorLiteral(red: 0.01680417731, green: 0.1983509958, blue: 1, alpha: 1), name: "Blueberry", type: 2),
        (color: #colorLiteral(red: 0.5818830132, green: 0.2156915367, blue: 1, alpha: 1), name: "Grape", type: 2),
        (color: #colorLiteral(red: 1, green: 0.2527923882, blue: 1, alpha: 1), name: "Magenta", type: 2),
        (color: #colorLiteral(red: 1, green: 0.1857388616, blue: 0.5733950138, alpha: 1), name: "Strawberry", type: 2),
        (color: #colorLiteral(red: 1, green: 0.4932718873, blue: 0.4739984274, alpha: 1), name: "Salmon", type: 3),
        (color: #colorLiteral(red: 1, green: 0.8323456645, blue: 0.4732058644, alpha: 1), name: "Cantaloupe", type: 3),
        (color: #colorLiteral(red: 0.9995340705, green: 0.988355577, blue: 0.4726552367, alpha: 1), name: "Banana", type: 3),
        (color: #colorLiteral(red: 0.8321695924, green: 0.985483706, blue: 0.4733308554, alpha: 1), name: "Honeydew", type: 3),
        (color: #colorLiteral(red: 0.4500938654, green: 0.9813225865, blue: 0.4743030667, alpha: 1), name: "Flora", type: 3),
        (color: #colorLiteral(red: 0.4508578777, green: 0.9882974029, blue: 0.8376303315, alpha: 1), name: "Sprindrift", type: 3),
        (color: #colorLiteral(red: 0.4513868093, green: 0.9930960536, blue: 1, alpha: 1), name: "Ice", type: 3),
        (color: #colorLiteral(red: 0.4620226622, green: 0.8382837176, blue: 1, alpha: 1), name: "Sky", type: 3),
        (color: #colorLiteral(red: 0.476841867, green: 0.5048075914, blue: 1, alpha: 1), name: "Orchid", type: 3),
        (color: #colorLiteral(red: 0.8446564078, green: 0.5145705342, blue: 1, alpha: 1), name: "Lavender", type: 3),
        (color: #colorLiteral(red: 1, green: 0.5212053061, blue: 1, alpha: 1), name: "Bubblegum", type: 3),
        (color: #colorLiteral(red: 1, green: 0.5409764051, blue: 0.8473142982, alpha: 1), name: "Carnation", type: 3),
    ]

    func getAllColors() -> [UIColor] {
        let colorArray = self.pencilColors.map { (existingType) -> UIColor in
            return existingType.color
        }
        return colorArray
    }

    func getBlackAndWhiteColors() -> [UIColor] {
        let colorArray = self.pencilColors.filter { (existingColor) -> Bool in
            return existingColor.type == 0
        }.map { (currentType) -> UIColor in
            return currentType.color
        }
        return colorArray
    }

    func getDarkColors() -> [UIColor] {
        let colorArray = self.pencilColors.filter { (existingColor) -> Bool in
            return existingColor.type == 1
        }.map { (currentType) -> UIColor in
            return currentType.color
        }
        return colorArray
    }

    func getMediumColors() -> [UIColor] {
        let colorArray = self.pencilColors.filter { (existingColor) -> Bool in
            return existingColor.type == 2
        }.map { (currentType) -> UIColor in
            return currentType.color
        }
        return colorArray
    }

    func getLightColors() -> [UIColor] {
        let colorArray = self.pencilColors.filter { (existingColor) -> Bool in
            return existingColor.type == 3
        }.map { (currentType) -> UIColor in
            return currentType.color
        }
        return colorArray
    }

    func getColorName(fromColor color: UIColor) -> String {
        let name = self.pencilColors.first { (existingColor) -> Bool in
            return existingColor.color == color
        }.map { (existingType) -> String in
            return existingType.name
        }
        return name ?? ""
    }

}