Swift右键CustomColor类声明

问题描述 投票:0回答:2

因为swift中的奇怪颜色解决方案我需要制作customcolor类。我不知道我做得对。

我有一个CustomColors()类

和用法:color = CustomColors().black和完美的工作

但我想使用像:color = CustomColors(.Black)

我不能这样做:

init(_ Color: Colors) 
{
  switch Colors
     case .Black
        return UIColor(r:255,g:255,b:255,a:255)
}

我不知道很多事情。有人可以帮我解决问题吗?谢谢。

swift enums
2个回答
0
投票

您可以使用带有便利初始化程序的UIColor扩展而不是自定义类,如下所示:

extension UIColor {

    convenience init(color: Colors) {
        switch color {
        case .black:
            self.init(red: 1, green: 1, blue: 1, alpha: 1)
        case .white:
            self.init(red: 1, green: 1, blue: 1, alpha: 1)
        }
    }
}

但是我觉得如果你使用struct的静态属性预先定义你的颜色会更好:

struct Theme {
    static let colorOne = UIColor(red: 0.952941, green: 0.952941, blue: 0.952941, alpha: 1.0) // F3F3F3
    static let colorTwo = UIColor(red: 0.203922, green: 0.203922, blue: 0.203922, alpha: 1.0) // 343434
    // and so on...
}

用法

UILabel().backgroundColor = Theme.colorOne
UILabel().textColor = Theme.colorTwo

0
投票

您可以使用自定义颜色向UIColor类添加扩展名:

import UIKit

extension UIColor {
    static var mediumTurquoise: UIColor {
        return UIColor(red:0.31, green:0.82, blue:0.8, alpha:1)
    }
}

请确保RGB的值介于0.0和1.0之间。

您可以将自定义颜色用作UIolor.mediumTurquoise

© www.soinside.com 2019 - 2024. All rights reserved.