LoginSignup
10
5

More than 5 years have passed since last update.

Interface Builderでの指定色とコードでの指定色の違い

Posted at

Q. Interface Builder で設定した色と、コードから設定した色が微妙に違う?

A. Interafce Builder で設定した色の Color Profile を確認しましょう。

OSのカラーピッカーで何も考えず色を選択すると、Color Profileが Generic RGB が指定された状態になっています。

スクリーンショット 2019-02-21 12.38.29.png

このときのStoryboardファイルを見ると、colorSpace 属性が calibrateRGB になっています。

Main.storyboard
<color key="backgroundColor" red="0.5" green="0.6" blue="0.7" alpha="1" colorSpace="calibratedRGB"/>

そしてこの色のRGB値を UIColor#getRed(_:green:blue:alpha:) で取得すると、 指定値 rgb(0.5, 0.6, 0.7) とは異なる値 が返ってきます。
一方、コード上で同じ値を指定して UIColor を生成すると、Interface Builder上で指定した色と色味が微妙に異なることがわかります。

同じ色味に揃えたい場合は、Color Profileを sRGB に変更しましょう。

コードで指定した色と合わないときや、デザイナーさんから「なんか色が違う...」と突っ込まれたら、一度確認してみるとよいと思います。

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5