Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用swift时调用中的额外参数为绿色_Ios_Xcode_String_Swift_Uicolor - Fatal编程技术网

Ios 使用swift时调用中的额外参数为绿色

Ios 使用swift时调用中的额外参数为绿色,ios,xcode,string,swift,uicolor,Ios,Xcode,String,Swift,Uicolor,如何使用swift完成类似的代码。然而,当我尝试使用swift时,它在调用中给出了一个错误的额外参数green +(UIColor *)colorWithValues:(NSString *)colorValues{ NSArray *colorComponents = [colorValues componentsSeparatedByString:@","]; CGFloat red = [[colorComponents objectAtIndex:0] floatValue]/255.

如何使用swift完成类似的代码。然而,当我尝试使用swift时,它在调用中给出了一个错误的额外参数
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))

func colorWithValues(#colorToString:String)->(UIColor)的返回类型不应该是(UIColor*)这样的吗?alpha将始终是1或0您的答案会有所帮助。我在一个助手类中用func写了一个问题。那么我如何访问这个助手类并调用这个func呢?您可以在调用其他函数时调用这个函数。