2015-10-26 9 views
5

Stiamo costruendo un'app iOS che utilizza parzialmente lo UIWebView s per rendere alcuni elementi dell'interfaccia utente. Ho notato che i colori definiti nello Storyboard sono resi in modo diverso dai colori con gli stessi valori nella visualizzazione Web. La seguente schermata mostra tre colori di esempio sullo storyboard e nell'emulatore: #00C2F0, #00843C e #FF008F.iOS: colori definiti in Interface Builder diversi dai colori in Web View

shifted colors Interface Builder and Emulator

Le piazze di sinistra mostrano ogni colore reso come CSS background-color all'interno di un UIWebView, la piazza a destra mostra il colore assegnato da sfondo ad un UIView direttamente tramite Interface Builder.

Quando prendo una schermata e misurare i valori di colore in Photoshop, il colore mostrato nella UIWebView è esattamente come definito (cioè esattamente corrispondenti valori di colore esadecimali sopra indicati), mentre il colore mostrato attraverso la UIView viene spostato.

Ho letto parecchi post su colori "sbagliate" su iOS, che spiegare questo "problema" per la gestione del colore con l'obiettivo di avere un aspetto visivo uniforme su tutti i dispositivi (ad esempio here o here). Anche se questo suona totalmente ragionevole, non spiega il rendering incoerente attraverso diversi controlli.

C'è qualcosa che posso fare per ottenere colori di corrispondenza tra viste native iOS e colori resi all'interno di uno UIWebView?

risposta

8

Ho finalmente risolto il problema: il motivo non era UIWebView -specifico come avevo inizialmente ipotizzato, ma causato dal fatto che i colori assegnati tramite Interface Builder erano nello spazio colore sRGB. Passare a "RGB generico" e quindi a riassegnare i valori di colore esadecimale ha risolto il problema.

color picker color space

Molto utile è stato this domanda e risposta (mi sento la bandiera duplicato è ingiustificata).

+0

Per me avevo due UIViewControllers in uno storyboard in cui il colore di sfondo aveva lo stesso codice, ma sembrava visivamente diverso. Avevo studiato l'opacità e l'alfa ... e sono rimasto bloccato. Questo lo risolse. Non sono sicuro di come si sono messi in modo diverso in primo luogo. – davew

+0

Penso che il dispositivo RGB funzioni meglio. Le app come Color Picker recuperano il valore come definito nello storyboard xcode. –

Problemi correlati