¿Por qué los colores se ven diferentes en iOS de Sketch?

Tengo curiosidad por saber cómo aplicaste un valor hexadecimal a iOS. UIColor define colores personalizados a través de valores RGB y opacidad. Apuesto a que sé cuál es el problema.

Lo más probable es que su programador tome el valor Hex y lo traduzca a RGB usando un perfil ICC diferente al que está usando (o más probablemente, sacaron una página web aleatoria para convertir hexadecimal de nuevo a RGB).

Asegúrese de estar trabajando en el espacio de color sRGB en Sketch y proporcione al programador valores RGB. Deberías ver una mejora. De lo contrario, asegúrese de que el programador esté usando sRGB en el selector de color en xCode, si está usando Storyboards para definir los colores.

La información clave es que el color ‘verdadero’ de Hex o RGB siempre se filtra a través de ICC Color Management en su computadora. Por ejemplo, los números R: 100 B: 100 G: 100 significan algo diferente en sRGB que AdobeRGB. Los mismos números, diferentes colores. Así es como funciona la gestión del color, dando color reproducible a un conjunto de números mediante el uso de perfiles ICC.

En mi experiencia, sRGB es una aproximación justa de los dispositivos iOS, aunque no es perfecta.

Espero escuchar si las cosas han mejorado.

Hay un par de posibilidades. Primero, dado que UIColor no toma valores hexadecimales, hay un código escrito en su proyecto para traducir los valores hexadecimales en valores flotantes, CGFloat. En Swift sería este método usado quizás:

init (rojo: CGFloat, verde: CGFloat, azul: CGFloat, alfa: CGFloat)

Los valores de CGFloat varían de 0 a 1.0, mientras que los valores hexadecimales varían de 00-FF. Ese código para traducir puede estar equivocado y el desarrollador puede querer verificarlo mediante una prueba.

La segunda posibilidad es que las pantallas no coincidan. Los perfiles de color utilizados en Mac e iOS pueden ser diferentes. Como dice Kevin, asegúrese de estar trabajando en el espacio de color sRGB. Asegúrese de que ambos sistemas estén utilizando el mismo espacio de color. Un valor RGB hexadecimal se referirá a diferentes colores en diferentes espacios de color.

Por último, asegúrese de que en Sketch no haya superpuesto o mezclado colores accidentalmente entre capas. Puede pasar. Y en iOS, asegúrese de que sus valores alfa coincidan con su alfa en Sketch.

Esto se debe a las diferentes configuraciones de pantalla. Puede haber diferentes valores de corrección de gamma, diferentes configuraciones de brillo y contraste, una de las pantallas puede estar dañada, el suministro de voltaje requerido para ejecutar la pantalla puede estar defectuoso … Puede haber numerosas razones. La conclusión es que es más que probable que dos dispositivos diferentes tengan diferentes pantallas y diferentes configuraciones en ambos, por lo que la representación en la pantalla puede ser diferente.

No sé qué es Sketch, pero cuando se trata de cambiar el color entre dispositivos electrónicos, a menudo se trata de una corrección gamma diferente (o faltante) (o, en general, se ignora la transmisión del perfil de color). cf corrección gamma