2012-05-28 12 views
8

Semplicemente, ho 2 viste in Interface Builder, uno è impostato sul colore 99,99,99 utilizzando i cursori RGB nel costruttore di interfaccia.Differenza di colore tra drawRect e Interface Builder?

enter image description here

L'altra vista è colorato di programmazione per ottenere una certa forma. Mi riempio con:

//Obviously, this is in drawRect. 
[[UIColor leadColor] set]; 
CGContextEOFillPath(myContext); 

//And this is a category on UIColor 
+ (UIColor *)leadColor { 
    return [UIColor colorWithWhite:99/255.0 alpha:1.0]; 
} 

Il risultato:

enter image description here

Perché questa differenza esiste ??


EDIT: (unecessary drawRect Codice rimosso)


EDIT2:

Così, qui sto mentendo a me stesso .. "costruttore di interfaccia ha mostrato RGB 99,99 99 come 80,80,80. Scommetto che compensa il numero di 19. " .>> ... Un uomo disperato usando Xcode pensa cose folli come questo .. Il risultato:

Perfect!!

PERFETTA !!, ma perché ???? Un altro bug Xcode? Ho trovato 10 di quelli del mese scorso ...

+0

Pubblica drawRect completo come esimo a due linee insieme a 'UIGraphicsGetCurrentContext' non disegnano il colore sulla vista. –

+0

Grazie per aver provato. Basta sostituire 'CGContextEOFillPath (myContext);' con 'CGContextFillRect'. Più semplice, solo per testare. – Mazyod

+1

Hai provato '[UIColor colorWithRed: 99/255.0 verde: 99/255.0 blu: 99/255.0 alpha: 1,0]'? – Clafou

risposta

22

ho finalmente raggiunto la fase messa a punto di questa applicazione, e ha dovuto risolvere questo problema, quindi, ho cercato e facilmente trovato la soluzione:

How do I enter RGB values into Interface Builder?

Illustrazione:

enter image description here

+1

Grazie per quello. Non avrei mai pensato di farlo in IB – CVertex

+0

Ho avuto lo stesso problema e colori testati da wu con Fireworks jejej –

+0

grazie. Ha funzionato per me – db42

1

colorWithWhite utilizza grayscale space e un colore di 99 nello spazio in scala di grigi non si associa a un colore di (99,99,99) nello spazio RGB.

Quindi, al fine di ottenere lo stesso risultato in Interface Builder, è necessario utilizzare lo spazio RGB. Sostituire la chiamata a colorWithWhite con questo:

[UIColor colorWithRed:99/255.0 green:99/255.0 blue:99/255.0 alpha:1.0] 
+0

Quello che stai dicendo ha perfettamente senso, tuttavia, non è il caso. Lo screenshot che ho caricato ha due diversi colori grigi, quello disegnato da 'drawRect' +' leadColor' = RGB 99,99,99. (ad esempio colorWithWhite è uguale al codice che hai fornito.Comunque, l'ho provato, inutile). Tuttavia, il colore impostato in IB viene visualizzato come RGB 80,80,80. – Mazyod

+0

Strano! Se apri il file .xib in un editor di testo e cerchi il valore del colore, cosa vedi? – Clafou

+0

\t \t \t \t \t \t \t \t \t \t \t 2 \t \t \t \t \t \t \t \t \t \t \t MC40NjI3NDUwOTggMC40NjI3NDUwOTggMC40NjI3NDUwOTgAA \t \t \t \t \t \t \t \t \t \t .. Non ha senso per me. – Mazyod

Problemi correlati