Edited at

【iOS】R.swiftでColorを扱う

More than 1 year has passed since last update.


iOS その3 Advent Calendar 6日目

遅れましたが、6日目書かせていただきます。

みんな大好き(だと信じたい)R.swiftでカラーコードを扱う方法を紹介します。

以下のところにも書いてありますが、ちょっと手間取ったのでメモがてらに。

R.swift/Colors.md at master · mac-cain13/R.swift · GitHub

できればすべてのリソースをR.swiftで扱いたい気持ちです。

では本題です。


R.swiftのインストール

ここら辺は割愛しようと思います。

他の記事を参考にしてもらえれば大丈夫かと。

というよりGithubを見ながらCocoaPodsで行けると思います。

GitHub - mac-cain13/R.swift: Get strong typed, autocompleted resources like images, fonts and segues in Swift projects


Xcodeでパレットを作成する

適当に作ってみます。

test-color.gif

Testというカラーパレットを作成してみました。

色は適当にグレーっぽいやつを入れてみました。

これをR.swiftを含んでいるプロジェクトのターゲットに含めます。


カラーパレットの居場所

以下のところにあります。

> ~/Library/Colors/Test.clr

今回はパレット名をTestにしたのでTest.clrになります。

こいつをプロジェクトに突っ込みます。


スクリプトの作成

直(~/Library/Colors/Test.clr)で入れるとGit管理に置けなかったり他の人が参照できなかったりなので、常にプロジェクトにコピーできるようにスクリプト作ります。


copy_clr.sh

rm Test.clr

cp ~/Libarary/Colors/Test.clr Test.clr

僕はこのスクリプトを実行する時はTest.clrがあるディレクトリでやるようにしてます。

他はうまくやってください。

あとはこいつをターゲットに含めます。


ターゲットに追加

追加したいグループで右クリック > "Add To ..." で以下のようにやります。

スクリーンショット 2016-12-06 20.17.00.png

Copy items if neededのチェックは外してください。

そして追加できたらビルドします。

R.generated.swiftcolorに無事追加されていると思います。


使い方

以下のように使います。

R.color.#{パレット名}.#{色名}

なので、先ほど作ったパレットに合わせて使うとすると

R.color.test.gray()

となります。

もし追加されていない場合は


  • プロジェクトに追加できていない

  • コピーできていない

あたりが怪しいと思います。


終わりに

これのおかげで、アプリ内の色の調整がとても楽にできるようになりました。

Assets周りの扱いもスッキリするのでぜひR.swiftを使用するのをお勧めします。

以上です。