为UIColor创建自定义颜色

时间:2017-09-19 19:09:27

标签: swift uicolor

我有一个关于在swift中创建自定义UIColor的问题。

我使用了以下扩展码:

import UIKit

extension UIColor {
  convenience init(red: Int, green: Int, blue: Int) {
    let newRed = CGFloat(red)/255
    let newGreen = CGFloat(green)/255
    let newBlue = CGFloat(blue)/255

    self.init(red: newRed, green: newGreen, blue: newBlue, alpha: 1.0)


    }
}

let brandBlue = UIColor(red: 0, green: 127, blue: 255)

我想在shadowColor中加载它,代码如下:

class squareButton : UIButton {

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.layer.cornerRadius = 10.0
        self.layer.shadowColor = (Loading code here)
        self.layer.shadowRadius = 1.5
        self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0)
        self.layer.shadowOpacity = 0.6
        self.layer.masksToBounds = false   
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.layer.cornerRadius = 10.0
        self.layer.shadowColor = (Loading code here)
        self.layer.shadowRadius = 1.5
        self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0)
        self.layer.shadowOpacity = 0.6
        self.layer.masksToBounds = false  
    }
}

但我使用的每一种组合都行不通。每次它说我应该用作! CGColor但是当我这样做时,应用程序崩溃了。

请帮帮我

谢谢

2 个答案:

答案 0 :(得分:4)

在您目前提供给self.layer.shadowColor = (Loading code here) UIColor的代码中,这会导致编译错误。

您创建的扩展程序很好。在实例化新的.cgColor实例后,只需使用UIColor的{​​{1}}属性即可。这将是示例代码:

UIColor

答案 1 :(得分:2)

CGColorUIColor不一样,CALayer.shadowColor需要CGColor。您可以通过调用CGColor个实例上的UIColor媒体资源,从cgColor获得UIColor

像这样:self.layer.shadowColor = UIColor(red: 0, green: 127, blue: 255).cgColor