在objective-c中,我们可以像这样编写用类方法调用颜色。
+ (UIColor *)getFromRGB:(int)red green:(int)green blue:(int)blue
{
float r = (float)red / 255;
float g = (float)green / 255;
float b = (float)blue / 255;
return [UIColor colorWithRed:r green:g blue:b alpha:1];
}
然后,我们可以这样打电话。
cell.backgroundColor = [Helpers getFromRGB:216 green:38 blue:56]
在Swift中,我从中读取并称之为Type方法。 https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html
所以,我试着这样写。
class Helper
{
class func colorFromRGB (red: Int, green: Int, blue: Int) -> UIColor
{
var color: UIColor = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: CGFloat(1.0))
return color
}
}
但是当我调用Type方法时,我得到了这样的错误。我应该怎么做?
修改:也不能像那样打电话。之后,根据xCode自动建议,我没有像这样的红色参数这样写。然后,我可以编译,但我只能得到那样的黑色。我认为调用方法和颜色信息也错了。我该怎么办?
答案 0 :(得分:5)
如果要对所有参数使用标签,可以使用" red red: ...
"指定第一个参数的标签。或只是" #red: ...
":
class func colorFromRGB(#red: Int, green...
或者您可以考虑使用扩展程序来定义自己的便利初始化程序:
extension UIColor {
convenience init(red: CGFloat, green: CGFloat, blue: CGFloat) {
self.init(red: red, green: green, blue: blue, alpha: 1)
}
}
然后你可以直接拨打UIColor(red: ..., green: ..., blue: ...)
。
答案 1 :(得分:0)
Swift强制为所有参数输入参数名称(参数标签)。然后你必须写这样的东西。
Helper.colorFromRGB(red: 3, green: 3, blue: 3)
这与类型方法或UIColor
无关。