我有这个扩展名:
extension UIColor {
func rgba(r: Int, g: Int, b: Int, a: Float) -> UIColor {
return UIColor(red: r/255, green: g/255, blue: b/255, alpha: a)
}
}
这给了我一条错误消息:Extra argument 'green' in call
我不明白为什么会发生这种情况,可能是xcode 6 beta 4或swift中的错误。
答案 0 :(得分:8)
这是因为您传递了所有错误类型的参数:r/255, g/255, b/255
是Integer而a
是Float,但是UIColor的init方法接受4个参数的CGFloat。
将代码修改为:
func rgba(r: Int, g: Int, b: Int, a: Float) -> UIColor {
let floatRed = CGFloat(r) / 255.0
let floatGreen = CGFloat(g) / 255.0
let floatBlue = CGFloat(b) / 255.0
return UIColor(red: floatRed, green: floatGreen, blue: floatBlue, alpha: CGFloat(a))
}
答案 1 :(得分:3)
extension UIColor {
convenience init(r: Int, g:Int , b:Int , a: Int) {
self.init(red: CGFloat(r)/255, green: CGFloat(g)/255, blue: CGFloat(b)/255, alpha: CGFloat(a)/255)
}
}
let myColor = UIColor(r: 255 , g: 255, b: 255, a: 255)
答案 2 :(得分:1)
试试这个:
extension UIColor {
class func rgba(r: Int, g: Int, b: Int, a: Float) -> UIColor {
return UIColor(red: r/255, green: g/255, blue: b/255, alpha: a)
}
}