iOSのプロジェクト内で共通のデザインを簡単に扱いたい
iOSに限った話ではないですが、一つのプロジェクト内で共通して使いたいモノって結構あると思います.
色やフォントなどのデザイン面は、アプリ内で統一するために共通して使うと思うのですが、色やフォントの指定を毎回書くのはめんどくさいですし、まあしたくありません. できるだけ簡単に扱いたいです.
ということでできるだけ簡単にかつ汎用的に扱えるようにUtility的な感じのものを作ってみました. (ライブラリとして使えるような感じにはしておらず、個人的にさくっとコピって使おうと思って書いたものです)
詳細はGithubに上げていますので、そちらをご覧いただきたいですが、一応使い方的なものだけ載せておきます.
アプリ固有の色とフォントの指定は以下のように書きます.
enum Color: String { case Theme01 = "#ff00ff" case Theme02 = "#00ff00" case Twitter = "#00aced" case Facebook = "#305097" case Line = "#5ae628" case Instagram = "#3f729b" case White = "#ffffff" case Black = "#000000" } enum Font: CGFloat { // Size case S = 12.0 case M = 16.0 case L = 20.0 // Style enum Style:String { case Reguler = "HiraKakuProN-W3" case Bold = "HiraKakuProN-W6" } func name(style: Style) -> String { return style.rawValue } }
定義したデザインはDesignという構造体を使って使用できます.
let label1 = UILabel() label1.backgroundColor = Design.color(.Theme01) label1.textColor = Design.color(.White) label1.font = Design.font(.M) let label2 = UILabel() label2.backgroundColor = Design.color(.Twitter) label2.textColor = Design.color(.Black, alpha: 0.8) label2.font = Design.font(.S, style: .Bold)
いろんな方法があると思いますので、これが最良かと言えばまったくそんなことはないと思いますが、現状こんな感じで落ち着きました.
もっと良い方法があれば、是非教えていただきたいです.