我有一个关于在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但是当我这样做时,应用程序崩溃了。
请帮帮我
谢谢
答案 0 :(得分:4)
在您目前提供给self.layer.shadowColor = (Loading code here)
UIColor
的代码中,这会导致编译错误。
您创建的扩展程序很好。在实例化新的.cgColor
实例后,只需使用UIColor
的{{1}}属性即可。这将是示例代码:
UIColor
答案 1 :(得分:2)
CGColor
和UIColor
不一样,CALayer.shadowColor
需要CGColor
。您可以通过调用CGColor
个实例上的UIColor
媒体资源,从cgColor
获得UIColor
。
像这样:self.layer.shadowColor = UIColor(red: 0, green: 127, blue: 255).cgColor