2011-11-05 15 views
59

Pracuję nad aplikacją na iPhone'a, która używa różnych kolorów. Gdy użytkownik wybierze określony przycisk koloru, odpowiednio ustawię kolor rysunku. Dostaję kolor dla niektórych, ale w większości przypadków uzyskuję biały kolor.Jak prawidłowo inicjować UIColor z wartości RGB?

Oto mój kod:

-(IBAction)colorSelected:(UIButton *)sender 
{ 

switch (sender.tag) 
{ 
    case 1: 
     self.drawcolor= [UIColor colorWithRed:200 green:191 blue:231 alpha:1]; 
     break;    
    case 2: 
     self.drawcolor= [UIColor colorWithRed:163 green:73 blue:164 alpha:1]; 
     break; 
    case 3: 
     self.drawcolor= [UIColor colorWithRed:112 green:146 blue:76 alpha:1]; 
     break; 
    case 4: 
     self.drawcolor= [UIColor colorWithRed:63 green:72 blue:204 alpha:1]; 
     break; 
    case 5: 
     self.drawcolor= [UIColor colorWithRed:153 green:217 blue:234 alpha:1]; 
     break; 
    case 6: 
     self.drawcolor= [UIColor colorWithRed:0 green:162 blue:232 alpha:1]; 
     break;   
    case 7: 
     self.drawcolor= [UIColor colorWithRed:181 green:230 blue:29 alpha:1]; 
     break; 
    case 8: 
     self.drawcolor= [UIColor colorWithRed:34 green:177 blue:76 alpha:1]; 
     break;   
    case 9: 
     self.drawcolor= [UIColor colorWithRed:239 green:228 blue:176 alpha:1]; 
     break;   
    case 10: 
     self.drawcolor= [UIColor colorWithRed:255 green:201 blue:0 alpha:1]; 
     break;   
    case 11: 
     self.drawcolor= [UIColor colorWithRed:255 green:201 blue:14 alpha:1]; 
     break;   
    case 12: 
     self.drawcolor= [UIColor colorWithRed:237 green:28 blue:36 alpha:1]; 
     break;   
    case 13: 
     self.drawcolor= [UIColor colorWithRed:255 green:127 blue:39 alpha:1]; 
     break;   
    case 14: 
     self.drawcolor= [UIColor colorWithRed:255 green:174 blue:201 alpha:1]; 
     break;   
    case 15: 
     self.drawcolor= [UIColor colorWithRed:185 green:122 blue:87 alpha:1]; 
     break;   
    case 16: 
     self.drawcolor= [UIColor colorWithRed:136 green:0 blue:21 alpha:1]; 
     break;   
    case 17: 
     self.drawcolor= [UIColor colorWithRed:195 green:195 blue:195 alpha:1]; 
     break;   
    case 18: 
     self.drawcolor= [UIColor colorWithRed:127 green:127 blue:127 alpha:1]; 
     break;   
    case 19: 
     self.drawcolor= [UIColor colorWithRed:255 green:255 blue:255 alpha:1]; 
     break; 
    case 20: 
     self.drawcolor= [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; 
     break; 
    default: 
     break; 
} 

self.preColor=self.drawcolor; 
self.lineWidth=self.prelineWidth; 
} 

Może ktoś mi powiedzieć co robię źle? Sumit

+1

natknąłem się ładnym narzędzia http://colorcode.globalmaverick.com/ daje u Objecive-C i szybkim kod użytkowej bezpośrednio z kodu kolorów HEX lub RGB. – amar

Odpowiedz

184

Wartości mieszczą się w zakresie od 0.0 do 1.0.

E.g. podziel przez 255., ale pamiętaj o kropce dziesiętnej, aby uzyskać podział zmiennoprzecinkowy, a nie podział całkowity.

Like

selectedColor = [UIColor colorWithRed:14.0/255.0 green:114.0/255.0 blue:199.0/255.0 alpha:1]; 
+19

Aby rozwinąć odpowiedź Mats, oto przykład: self.drawcolor = [UIColor colorWithRed: 14.0/255.0 green: 114,0/255.0 blue: 199,0/255.0 alpha: 1]; – Flea

6

Masz kilka opcji

Kod

CGFloat red = 16.0; 
CGFloat green = 97.0; 
CGFloat blue = 5.0; 
CGFloat alpha = 255.0; 
UIColor *color = [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:(alpha/255.0)]; 

Próbnik kolorów wtyczki do interfejsu Builder

Jest n kolor lód kompletacji z Panic który dobrze współpracuje z IB: http://panic.com/~wade/picker/

Xcode wtyczki

Ten daje GUI za wybór kolorów: http://www.youtube.com/watch?v=eblRfDQM0Go

Pods i biblioteki

istnieje nice pod o nazwie MPColorTools: https://github.com/marzapower/MPColorTools

10

Pr podejście agmatyczne z Swift.

extension UIColor { 

    convenience init(rgbColorCodeRed red: Int, green: Int, blue: Int, alpha: CGFloat) { 

    let redPart: CGFloat = CGFloat(red)/255 
    let greenPart: CGFloat = CGFloat(green)/255 
    let bluePart: CGFloat = CGFloat(blue)/255 

    self.init(red: redPart, green: greenPart, blue: bluePart, alpha: alpha) 

    } 
} 
1

Oto metody, które można łatwo przekształcić w kategorii na UIColor który pozwoli Ci określić kolor w oparciu o wartości RGBA 0 - 255.

+ (UIColor *)colorFromRGBAWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha { 
    return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha/255.0]; 
} 

Jeśli sprawiają, że kategoria przedłużenie UIColor, można go używać tak:

UIColor *myAwesomeColor = [UIColor colorFromRGBAWithRed:48 green:119 blue:167 alpha:255]; 
1

w Swift można łatwo ustawić kolor tła na przykład komórki jak ten:

cell.backgroundColor = UIColor.init(red: 14.0/255.0, green: 114.0/255.0, blue: 199.0/255.0, alpha: 1)

:-)

0
(ContentView.Layer.BorderColor) //CG Object 
    = UIColor.LightGray.CGColor; 
+1

Edytuj i uzyskaj więcej informacji. Tylko kod i odpowiedź "spróbuj tego" są odradzane, ponieważ nie zawierają treści do wyszukiwania i nie wyjaśniają, dlaczego ktoś powinien "spróbować tego". – abarisone