このアプリは現在の日付、時刻から算出されたカラーコードを提供します。
自分自身webデザインなどを手掛ける際にふとちょうどいいカラーコードを探したくなる時が多々あったので今回そういったデザインに携わる人々に色の選択肢を与えられるアプリを作成しました。
機能部分はとてもシンプルです。
まず現在の日付から日、時間、分を抽出します。この記事 を参考にしました。
ここで満遍なくカラーコードを出力するため 日×時間、 時間×分、 日×分の3つの値を作成します。
この3つの値を2桁の16進数の最大値255 + 1の256で割り、剰余を16進数へ変換して文字列として出力させます。
この出力した文字列、例えば"e3452f"をカラーコードとして読み込み色を出力してくれるよう UIColor
を少し拡張します。
この記事 を参考にしました。
extension UIColor {
convenience init(hex: String, alpha: CGFloat = 1.0) {
let v = Int("000000" + hex, radix: 16) ?? 0
let r = CGFloat(v / Int(powf(256, 2)) % 256) / 255
let g = CGFloat(v / Int(powf(256, 1)) % 256) / 255
let b = CGFloat(v / Int(powf(256, 0)) % 256) / 255
self.init(red: r, green: g, blue: b, alpha: min(max(alpha, 0), 1))
}
}
すると現在時刻に基づいた色とカラーコードが出力されます。
-
現在更新ボタンを押さないと色とカラーコードが更新されません。
1分毎にカラーコードを自動で更新させたかったですが技術と時間的に厳しそうでした。
-
本来は複数セルを作成して6種類ほどカラーコードを出力したかったがセルの扱いが想像以上に難しく今回は諦めました。