ios colors interface-builder uistoryboard uicolor

ios - El color en el guión gráfico no coincide con UIColor



colors interface-builder (5)

Estoy definiendo un color en el código como

[UIColor colorWithHue:32.0/360.0 saturation:0.88 brightness:0.97 alpha:1]

Si trato de establecer el mismo color en el guión gráfico, cuando ejecuto la aplicación, es un color ligeramente diferente al definido en el código. Si arrastro el color al paladar, luego selecciono un color diferente y selecciono el paladar nuevamente, los valores de HSB son ligeramente diferentes. Parece que se está ajustando a un color diferente (¿RGB?) En el generador de interfaces.


Con código, el método UIColor init (rojo: verde: azul: alfa :) devuelve el objeto de color con espacio de color sRGB; Con xib / StoryBoard, debemos seleccionar "sRGB IEC ..." si queremos obtener la misma apariencia que con el código.

Como:

UIColor.init(red: (20.0/255.0), green: (20.0/255.0), blue: (20.0/255.0), alpha: 1.0)

Captura de pantalla de xib / StoryBoard

En realidad, este problema no tiene nada que ver con iOS 10. Después de iOS 10, UIColor init usa "sRGB extendido" en lugar de sRGB. Y esto causará problemas solo cuando usemos valores rgb por debajo de 0.0 y por encima de 1.0.

iOS 10 relacionado con UIColor


Parece que esto es un error. Al registrar el color establecido por IB en el código, tiene los valores H: 27.982594 S: 0.899257 B: 0.953253

He presentado un informe de error a Apple: rdar: // 19744216

Gracias a zaph

Iniciar sesión:

CGFloat cols[4]; [color getHue:&cols[0] saturation:&cols[1] brightness:&cols[2] alpha:&cols[3]]; NSLog(@"H:%f S:%f B:%f %f",cols[0]*360, cols[1], cols[2], cols[3]);


Tuve el mismo problema. Estaba viendo valores RGB de tiempo de ejecución de los colores de los guiones gráficos que no coinciden con los UIColors creados en tiempo de ejecución en el código. Pude solucionar esto en los guiones gráficos al configurar el color como "RGB genérico" (frente al valor predeterminado de sRGB) al configurarlo. Aquí hay una captura de pantalla de lo que estoy hablando en IB:


Swift 3

En mi caso, lo que era exactamente exacto era LCD a color :

Espero haber ayudado :-D


Xcode 8+, iOS 10+

Recientemente me enfrenté a este problema y ninguna de las respuestas publicadas lo hizo. Resulta que con el lanzamiento de iOS 10 SDK, el inicializador UIColor init(red:green:blue:alpha:) ahora usa el rango sRGB extendido, por lo que debe configurarlo en consecuencia al configurar sus valores de color en el Storyboard.

Consulte la documentación de Apple: https://developer.apple.com/reference/uikit/uicolor/1621925-init