11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS その3Advent Calendar 2016

Day 6

【iOS】R.swiftでColorを扱う

Last updated at Posted at 2016-12-06

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を使用するのをお勧めします。

以上です。

11
8
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
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?