iOS: el color en el simulador xcode es diferente del color en el dispositivo

Visión de conjunto

El color de fondo de mi aplicación de iPhone en el simulador (iMac) se ve diferente del color en el dispositivo (iPhone 3GS).

EDITAR (se ha agregado la siguiente sección)

Los siguientes son todos diferentes:

  1. color del tablero de historias (archivo xib)
  2. color del simulador
  3. color del dispositivo

Supongo que debería ver cómo se ve en el dispositivo.

Preguntas

  1. ¿Este es un problema común al que se enfrentan otros desarrolladores y hay una forma de hacer coincidir los colores (procedimiento sistemático)?
  2. ¿el color se verá diferente en las diferentes versiones de iPhone (3gs / 4 / 4s) o en todo el color?
  3. ¿Me estoy perdiendo algo? ¿Hay algún perfil de color específico que deba usar?
  4. ¿Hay algo así como una regla general donde los valores RGB varían en un cierto porcentaje?
  5. En iPhone 4 y 4S, ¿el color coincide con el simulador? (No tengo un iPhone4 y 4S, así que no estoy seguro).

El crédito va a @jtbandes por sugerir enviar capturas de pantalla que llevaron a la solución

Solo estoy respondiendo la pregunta para completarla.

Pasos que seguí:

  1. Tome una captura de pantalla de la imagen en el guión gráfico
  2. Haga una captura de pantalla de la imagen en el dispositivo (use la secuencia de correo / foto en su Mac)
  3. Utilice el selector de color (parte de la paleta de colores de mac OS) para elegir el mismo lugar en ambas capturas de pantalla
  4. Anote los valores RGB (disponibles en la paleta de colores de mac OS) de los spots elegidos en el paso 3
  5. comparar los valores RGB y ver la diferencia
  6. agregue el desplazamiento RGB para que coincida con el color.

Mi desplazamiento RGB (no se debe seguir a ciegas)

De acuerdo con mi experiencia, agregué los siguientes valores RGB para obtener el color que quería, solo es duro y funcionó para mí:

  • Rojo +12
  • Verde +19
  • Azul +16

Diferentes angularjs (lo mejor es mantenerlo horizontal)

Sostener el teléfono en diferentes angularjs también da diferentes tonos, mantenerlo horizontal dio el color

La referencia actual (a partir del 17/3/14) CGColorSpace incluye el siguiente texto, que dice que sRGB es el espacio de color del dispositivo nativo para iOS.

Color Spaces e iOS: iOS no es compatible con ColorSync, por lo que todos los activos se deben proporcionar en el espacio de color del dispositivo nativo: sRGB.

Como otros han señalado, este es un problema de Color Spaces .

Se deben realizar dos tareas:

  1. Obtenga el color de fuente usando el espacio de color sRGB.
  2. Establezca el color en Interface Builder, utilizando el espacio de color sRGB.

Tarea 1

Puede usar la aplicación de Digital Color Meter de Apple para muestrear el color requerido, usando la opción Display in sRGB , pero la salida es muy limitada.

Otra opción es usar una aplicación como SipIt (disponible gratuitamente en la App Store, la última vez que lo revisé). Asegúrese de estar muestreando en el espacio de color correcto realizando:

 Preferences -> General -> Color Profiles -> sRGB 

También puede configurar su formato de salida (por ejemplo, cadena hexadecimal).

enter image description here Tarea 2

En Interface Builder, abra la ventana Color, elija el segundo panel, elija “RGB Sliders”. A continuación, haga clic en el icono del engranaje para elegir el perfil de color sRGB.

enter image description here

Una vez hecho esto, pegue su valor de color en el campo Hex Color #

¡Terminaste! Tus colores ahora deberían coincidir.

No estoy afiliado a SipIt de ninguna manera. Pero lo he estado usando durante algunos años y es muy útil. Lo recomendaría a cualquier diseñador.

Se trata de espacios de color .

Asegúrese de seleccionar el color de un sRGB color sRGB y de replicar sus valores RGBA en el Generador de interfaces seleccionando sRGB IEC61966-2.1 en el menú desplegable.

Si selecciona un color en un espacio de color y lo genera en un espacio de color diferente, se verá diferente, a pesar de haber replicado los mismos valores de RGBA.

Además, tenga en cuenta que cuando genera un código de color mediante UIColor(red:green:blue:alpha:) , se genera en el sRGB color sRGB de forma predeterminada. Por eso es tan conveniente usar este (en lugar de Adobe RGB , P3 o cualquier otro). Además, sRGB es el estándar más utilizado actualmente en la industria.

Dato UIColor constructor de UIColor que mencioné anteriormente crea colores en el espacio sRGB desde Xcode8. Antes, esa función solía crearlos dentro del espacio Generic RGB . Es por eso que podría causar confusiones también.

Aquí hay un recurso que se extiende sobre el tema: https://medium.com/@volbap/working-efficiently-with-colors-in-xcode-bc4c58b16f9a

iPhone utiliza la administración del espacio de color, por lo que si desea una solución más “científica” puede crear su propio espacio de color, por ejemplo, con CGColorSpaceCreateCalibratedRGB . Sin embargo, está en el nivel de gráficos Core.

La mejor manera de convertir los valores RGB a sRGB es utilizando la herramienta “Medidor digital de color” en mac, simplemente verifique la “Pantalla en sRGB”

Medidor de color digital

luego use los valores sRGB en su código en lugar de RGB valores nativos

enter image description here

Con esta herramienta puede encontrar el color RGB genérico y configurarlo directamente en xcode como valores RGB

Una solución más simple cuando trabajas con archivos de imagen en tu aplicación. En primer lugar, configure su espacio de color en Xcode en sRGB IEC61966-2.1 y aplique sus colores. Luego, antes de importar cualquier imagen a su aplicación, haga coincidir sus imágenes con el perfil sRGB IEC61966-2.1 utilizando la utilidad ColorSync en Mac. Funcionó perfectamente para mí y mi fondo ahora coincide perfectamente con mis imágenes importadas. Espero que esto ayude a alguien.

Tuve un problema similar, especialmente con los greens en mi proyecto. Mi problema resultó ser que algunos de los recursos que tenía se crearon en Illustrator, y el color se configuró en CMYK en lugar de RGB. No estoy seguro si este fue su problema o no, pero podría ser útil para aquellos que se topan con esta pregunta en el futuro. Cambié el ilustrador “Modo de color del documento” a RGB y todo está bien.

Puede usar esta página web para diferentes mazos de colores en Xcode. por ejemplo, los colores generics y de dispositivo son diferentes un poco.

Intereting Posts