iOS11(Xcode9)からImage Setのように、色を定義することの出来るColor Setが実装され、Storyboard上での色管理の煩わしさから開放されました。
もちろん、コード上からも使うことが出来てとても便利なのですが、ちょっとした注意点があったので、備忘録として残しておこうかなと思いました。
あるプロジェクトで遭遇したことなのですが、Storyboard上で定義したLabelで、コード上からAttributedTextで色を変更しようとしたときのことです。
iOS13で起動したときは確かに色が変わっていたはずなのに、iOS11や12の端末で起動してみると、
色が変わらない
という現象が発生しました。
Great Scott!(BTTF大好き)と何度もつぶやきながら調べましたが、どうやら原因は「Storyboard上でColor Setを使用しているから」のようです。
特にサイトを調べたりしたわけではなく、Storyboardをいじっていたら発見したことなので本当かは定かではありませんが、少なくともStoryboard上で該当LabelのtextColorを、Xcodeで最初から定義されている色(black, white, default, etc...)に戻して再度アプリを実行すると、
ちゃんと色が変わってる!
という結果が得られました。
まとめ
iOS11や12を対象とするプロジェクトでColor Setを使う場合、Storyboardで設定した色を変更するときは注意が必要です。
意外と見落としがちなところかもしれないので、実際にそういったアプリを制作されている方は少しだけ注意したほうがいいかもしれません