2012-03-31 12 views
0

私はアプリをスキンするための良いデザインパターンを見つけています。異なるフォントを必要とするいくつかの異なるクラスがあり、サイズが違うとします。アプリをスキンするのに最適なデザインパターンは何ですか?

私の独創的なアプローチは、誰もがよりエレガントな解決策を持っている場合、私はちょうど思っていた...と言う... UIFontカテゴリを構築し、メソッドの束を配置する

+ (UIFont*)myTabBarFont; 

ました。

ありがとうございました!

(私はiOS 4との互換性を維持する必要がありますが、新しいAppearance APIに100%依存することはできません)。


EDITED:

私はこの質問自分自身にお答えします。私が実際に探していたのは、アプリ全体のスキンコンポーネントに対する洗練されたアプローチでした。

オプションの1つはInversion of Controlを使用し、どこでも特定のフォントと色をフェッチするのではなく、単にAppearanceManagerを作成し、スキンを適用したいコントロール&を渡すだけです。たとえば、

[[AppearanceManager sharedInstance] skinComponent:something container:somethingElse]; 

このようにして、すべてのスタイルを1つのクラスにまとめることができます。もちろん、AppearanceManagerクラスはリフレクションに依存して適用する属性をフェッチします。

誰かがより良いアプローチを実装していると聞いてうれしいです。

ありがとうございます!

答えて

1

あなたはすべての設定を別々のファイルに保存し、スキン名またはスキンIDに応じて手動で呼び出す必要があると思います。 plistファイルを使用すると、1つのコマンドで配列にロードすることができます。この配列の要素は、各スキンの値のボックスを個別に意味します。

+0

ありがとうございました!それは興味深い選択肢のように聞こえる。 AppleのAppearanceパターンをコピーすることを検討しています。言ってやるが...「AppearanceManager」のようなものをIoCでやっているので、あなたは[[AppearanceManager sharedInstance] skinComponent:something container:somethingElse]のようなことをすることができる。 (私は本当に洗練されたソリューションを見つけています!) もう一度おねがいします! –

関連する問題