Swiftで色を指定する方法
こんにちは、@Yuuです。
Swiftを使ってiPhoneアプリを開発する際、色を指定する場面は沢山あります。
今回はSwiftで色を指定する方法をご紹介します。
スポンサーリンク
解説を行う環境
今回僕が解説を行う環境です。
- OS:OS X Yosemite10.10.5
- Xcode:7.2
Xcodeのバージョンが7以降なのでSwift2での解説になります。
Swift(無印)でも書き方はほぼ一緒だと思いますが、違う場合はご了承下さい。
Swiftで色を指定する
今回の記事では「UIColor」という色を管理するクラスを使用します。
Labelのフォントの色、viewの背景色...などなど色を指定する際には、このUIColorというクラスを使用します。
UIColorについて紹介している公式サイトは以下になります。
Swiftで色を指定する方法はいくつかあるのですが、今回は2種類色を指定する方法をご紹介します。
1. 名前で指定する
Appleが事前に用意してくれている名前で指定出来る色が15種類あります。
例えば、「白・赤」といった一般的な色を、それぞれ「whiteColor()
・redColor()
」という風に指定する事が出来ます。
以下のコードが指定可能な15種類になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import UIKit let black = UIColor.blackColor() let darkGray = UIColor.darkGrayColor() let lightGray = UIColor.lightGrayColor() let white = UIColor.whiteColor() let gray = UIColor.grayColor() let red = UIColor.redColor() let green = UIColor.greenColor() let blue = UIColor.blueColor() let cyan = UIColor.cyanColor() let yellow = UIColor.yellowColor() let magenta = UIColor.magentaColor() let orange = UIColor.orangeColor() let purple = UIColor.purpleColor() let brown = UIColor.brownColor() let clear = UIColor.clearColor() |
tableViewを使ってチャチャッと作ってしまったので、デザイン性はあまりありませんが、色の参考にはなるかと思います。
1番最後のUIColor.clearColor()
というのは、名前のとおり「透明」を意味します。
僕が実際にアプリを作る際にはこの方法はあまり使いませんが、取り急ぎ色を変えて何か確認を行いたい状況の時に、こちらの方法を使用したりします。
2. RGBで指定する
UIColorではRed・Green・Blueの混ぜ合わせる量と透明度を表すalpha値の指定をする事が出来ます。
CSSのrgbaと同じで、「赤緑青」全ての色を最大値にすると白色に、またalpha値を0にすると完全に透明な色になります。
この色の混ぜ方は、光の三原色の加法混合ですね。
UIColorも、以下のwikipediaより引用させて頂いた画像のように色が変化します。
画像は原色 - Wikipediaより引用
ただし、SwiftのRGBで色を混ぜ合わせる場合注意が必要です。
それはCSSのrgbaでは赤緑青の値を「0~255」の間で設定しますが、 UIColorでは赤緑青の値を「0~1.0」の間で設定します。
例えばCSSで
rgba(0,128,255,1)
と設定するのを、UIColorで同じように設定する場合は
UIColor(red: 0.0, green: 0.502, blue: 1.0, alpha: 1.0)
となります。
Web開発を先にやっていた身としては、「うーん、分かりづらい・・」
と思ってしまいますね。
余談はさておき、実際にRGBの値を指定して、いくつか色を表現してみたいと思います。
1 2 3 4 5 6 7 8 9 10 11 |
import UIKit let black = UIColor(red: 0, green: 0, blue: 0, alpha: 1.0) let gray = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0) let white = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) let red = UIColor(red: 1.0, green: 0, blue: 0, alpha: 1.0) let blue = UIColor(red: 0, green: 0, blue: 1.0, alpha: 1.0) let yellow = UIColor(red: 1.0, green: 1.0, blue: 0, alpha: 1.0) let purple1 = UIColor(red: 1.0, green: 0, blue: 1.0, alpha: 1.0) let purple2 = UIColor(red: 1.0, green: 0, blue: 1.0, alpha: 0.5) let purple3 = UIColor(red: 1.0, green: 0, blue: 1.0, alpha: 0.2) |
最後の3つ(purple1,purple2,purple3)は、赤緑青の量は同じですが、alphaを変化させることによって色が少しずつ透明になっていっているのが分かるかと思います。
たいしたソースコードではないですが、上記2つのtableViewで表示するためのプロジェクトをGitHubに上げておいたので、よろしければ参照してみて下さい。
meganedogYuu/ColorSample - GitHub
あとがき
初めてSwiftで色を指定しようとした時に「えっ!?色を指定するのがこんなめんどくさいの!?」と思ったのを今でも良く覚えています(笑)
次の記事でSwiftで色を指定するのを便利にするExtensionをご紹介予定ですので、そちらも合わせてお読み頂ければと思います。
書きました!是非参考にしてみて下さい。
Swiftで色の指定を便利にするExtension
ではでは
今回はこの辺で!ヽ(•̀ω•́ )ゝ✧