使用 swift 时调用中的额外参数 green
Extra argument green in call while using swift
如何使用 swift 完成类似的代码。但是,当我尝试使用 swift 完成时,它在调用
中给出了一个错误 Extra argument green
+(UIColor *)colorWithValues:(NSString *)colorValues{
NSArray *colorComponents = [colorValues componentsSeparatedByString:@","];
CGFloat red = [[colorComponents objectAtIndex:0] floatValue]/255.0;
CGFloat green = [[colorComponents objectAtIndex:1] floatValue]/255.0;
CGFloat blue = [[colorComponents objectAtIndex:2] floatValue]/255.0;
CGFloat alpha = [[colorComponents objectAtIndex:3] floatValue];
UIColor *color = [[UIColor alloc]initWithRed:red
green:green
blue:blue
alpha:alpha];
//UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
return color;
}
bgView.backgoroundColor = [[self class]colorWithValues:@"155,124,144,1"];
func colorWithValues(#colorToString : String) -> (UIColor) {
var colorString = colorToString.componentsSeparatedByString(",")
let redColor : Float = Float(colorString[0].toInt()!)/255.0
let greenColor : Float = Float(colorString[1].toInt()!)/255.0
let blueColor: Float = Float(colorString[2].toInt()!)/255.0
let colorAlpha: Float = Float(colorString[3].toInt()!)
var colorValue : UIColor! = UIColor(red:CGFloat(redColor), green:CGFloat(greenColor), blue:CGFloat(blueColor), alpha: colorAlpha)
return colorValue
}
您应该将 Float
值更改为 CGFloat
:
let redColor : CGFloat = CGFloat(colorString[0].toInt()!)/255.0
let greenColor : CGFloat = CGFloat(colorString[1].toInt()!)/255.0
let blueColor: CGFloat = CGFloat(colorString[2].toInt()!)/255.0
let colorAlpha: CGFloat = CGFloat(colorString[3].toInt()!)
这样您就可以传递值而无需转换它们,这可以防止诸如忘记将 alpha 值转换为 CGFloat
等问题。
我看到你忘了把 alpha
换成 CGFloat
var colorValue : UIColor! = UIColor(red:CGFloat(redColor), green:CGFloat(greenColor),
blue:CGFloat(blueColor), alpha: colorAlpha)
^^^^^^^^^^ here
是什么原因造成的,改成这样
var colorValue : UIColor! = UIColor(red: CGFloat(redColor), green: CGFloat(greenColor),
blue: CGFloat(blueColor), alpha: CGFloat(colorAlpha))
如何使用 swift 完成类似的代码。但是,当我尝试使用 swift 完成时,它在调用
中给出了一个错误 Extra argumentgreen
+(UIColor *)colorWithValues:(NSString *)colorValues{
NSArray *colorComponents = [colorValues componentsSeparatedByString:@","];
CGFloat red = [[colorComponents objectAtIndex:0] floatValue]/255.0;
CGFloat green = [[colorComponents objectAtIndex:1] floatValue]/255.0;
CGFloat blue = [[colorComponents objectAtIndex:2] floatValue]/255.0;
CGFloat alpha = [[colorComponents objectAtIndex:3] floatValue];
UIColor *color = [[UIColor alloc]initWithRed:red
green:green
blue:blue
alpha:alpha];
//UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
return color;
}
bgView.backgoroundColor = [[self class]colorWithValues:@"155,124,144,1"];
func colorWithValues(#colorToString : String) -> (UIColor) {
var colorString = colorToString.componentsSeparatedByString(",")
let redColor : Float = Float(colorString[0].toInt()!)/255.0
let greenColor : Float = Float(colorString[1].toInt()!)/255.0
let blueColor: Float = Float(colorString[2].toInt()!)/255.0
let colorAlpha: Float = Float(colorString[3].toInt()!)
var colorValue : UIColor! = UIColor(red:CGFloat(redColor), green:CGFloat(greenColor), blue:CGFloat(blueColor), alpha: colorAlpha)
return colorValue
}
您应该将 Float
值更改为 CGFloat
:
let redColor : CGFloat = CGFloat(colorString[0].toInt()!)/255.0
let greenColor : CGFloat = CGFloat(colorString[1].toInt()!)/255.0
let blueColor: CGFloat = CGFloat(colorString[2].toInt()!)/255.0
let colorAlpha: CGFloat = CGFloat(colorString[3].toInt()!)
这样您就可以传递值而无需转换它们,这可以防止诸如忘记将 alpha 值转换为 CGFloat
等问题。
我看到你忘了把 alpha
换成 CGFloat
var colorValue : UIColor! = UIColor(red:CGFloat(redColor), green:CGFloat(greenColor),
blue:CGFloat(blueColor), alpha: colorAlpha)
^^^^^^^^^^ here
是什么原因造成的,改成这样
var colorValue : UIColor! = UIColor(red: CGFloat(redColor), green: CGFloat(greenColor),
blue: CGFloat(blueColor), alpha: CGFloat(colorAlpha))