目的:
UIButtonやUILabel等の見た目を統一するための設定共通化をGenericsでする
環境:
Xcode6.1.1
概要:
UILabel等の見た目を統一する方法です。例えば角を同じように丸くする等の記述を対象とします。UILabel等は基本的にUIViewのsubclassなのでこの点をうまく使いたいです。そこでGenericsを用いて変更内容を統一してそれぞれのobjectを引数として与え、同じinterfaceで変更する実装をします。
func viewSetup(view:T){...}
というのを実装しています。
ソースコードと詳細説明:
UIコンポーネントが多くなってくると、角を丸く処理とか面倒になってきます。サブクラス等を作成するのも良いですがUIコンポーネントの種類が増えてくると管理が大変になります。そこで私は以下のようなものを定義して一括処理しています。
sample.swift
func viewSetup<T:UIView>(view:T){
view.contentMode = .ScaleAspectFill
view.layer.cornerRadius = 5
view.layer.masksToBounds = true
}
...
定義したviewSetup関数にUILabelなどのインスタンスを放り込めばOKです。私はUILabelとUIImageViewで使っています。