2015-04-06 4 views
-1

Как выполнить этот похожий код с быстрым. Однако, когда я пытался достичь с быстрым, он дает ошибку дополнительный аргумент green в вызовеДополнительный аргумент зеленый при вызове при использовании swift

+(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 
} 
+0

Func colorWithValues ​​(#colorToString: String) -> (UIColor) не должен быть типа возврата (UIColor *) – toofani

ответ

2

Как я могу видеть, что вы забыли завернуть 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)) 
+0

Ваш ответ помог. Просто вопрос, который я написал в func в классе-помощнике. Как мне получить доступ к этому вспомогательному классу и вызвать этот func – Nassif

+0

Вы можете вызвать эту функцию, когда вы вызываете другую функцию. http://stackoverflow.com/questions/25528640/how-i-can-call-functions-from-other-class-swift-xcode –

1

Вы должны изменить 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()!) 

Таким образом, вы можете передать значения без необходимости их конвертировать, что может предотвратить такие проблемы, как забывание придать значение альфа-значения CGFloat.

+0

Как и эта альфа всегда будет 1 или 0 –

Смежные вопросы