2017-01-04 2 views
3

J'utilise XCode 8.2.1. Je viens d'apprendre des profils de couleurs et que les valeurs RVB ne sont pas universelles. Mais ne peut toujours pas comprendre comment le faire correctement dans le code. Dans Interface Builder, j'ai sélectionné une "couleur gris foncé" prédéfinie pour une étiquette. C'est (85, 85, 85) dans le profil RGB générique. Toujours dans le code, j'ai mis une autre couleur d'étiquette à [UIColor darkGrayColor]. Je m'attendais à ce qu'ils aient la même couleur, mais ils sont différents.Couleur UIColor vs IB (problème de profil de couleur)

I a utilisé la méthode

- (BOOL)getRed:(nullable CGFloat *)red green:(nullable CGFloat *)green blue:(nullable CGFloat *)blue alpha:(nullable CGFloat *)alpha 

pour obtenir des valeurs RVB. Pour l'étiquette dont la couleur a été définie dans IB, je vois que les valeurs sont réellement (104, 104, 104) qui correspondent aux valeurs dans IB lorsque je passe au profil Device RGB. Il semble donc que dans le code périphérique profil RVB est utilisé.

Mes questions sont les suivantes:

  1. Pourquoi "Couleur Gris foncé" standard est différent lorsqu'ils sont définis dans IB et dans le code?
  2. Comment utiliser le profil générique RVB dans le code, afin que je puisse faire correspondre les valeurs de couleur avec Interface Builder?
+0

hey @jesse je viens de répondre ci-dessous. –

Répondre

4

Bonjour Jesse s'il vous plaît voir réponse ci-dessous:

  • Why standard "Dark Gray Color" is different when set in IB and in code?

standard Dark Gray Color est différent en utilisant Storyboard et programmation parce que Storyboard utilise par défaut sRGB IEC61966-2.1 ou Generic RGBColor Profile et lorsque vous définissez par programme, donc il faut Device RGBColor profile parce que les périphériques iOS RGB périphériques iPhones, iPads ont des caractéristiques différentes en termes de leurs profils de couleurs d'affichage.

  • How to use Generic RGB profile in code, so I can match color values with Interface Builder?

Lorsque vous définissez UIColor programme de sorte que vous avez pas d'autre choix pour sélectionner Color Profile tout parce qu'il prendra Device RGBColor Profile.

Si vous voulez faire même, donc dans votre storyboard sélectionnez votre sélecteur de couleur, Ouvrir les paramètres et changer pour Device RGB

Voir ci-dessous capture d'écran pour couleur Profil Réglages en utilisant Storyboard:

enter image description here

J'espère que cela va vous aider ....