2009-03-12 7 views
2

私のアプリケーションのボタンのデフォルトの色を数行のコードで変更することは可能でしょうか?手動で各ボタンの色を変更するのは本当に退屈かもしれません。特にそれらの多くがある場合。同じ種類のすべてのインターフェイス要素の色を変更する

たとえば、すべてのボタンを元の白色ではなくオレンジ色にしたいとします。

ありがとうございます。 Ilya。

答えて

3

グローバル設定がありません。

オブジェクトのすべてのビューとサブビューを繰り返して、その型を照会し、必要に応じてカスタムカラーを適用することができます。これにより、ビューを渡してすべてが適用される、アプリケーション内の1つの場所を持つことができます。

類似のもの;

//! Applies application specific styles to UIKit objects 
void applyStyles(UIView* view) 
{ 
    for(UIView* subview in view.subviews) 
    { 
    // test type of view 
    if([[subview class] isEqualToString:@"UIButton"] == YES) 
    { 
     // apply colors for buttons 
    } 
    else if([[subview class] isEqualToString:@"SomethingElse"] == YES) 
    { 
     // apply colors for something else 
    } 
    } 
} 
+0

これらのテストは '[subview isKindOfClass:[UIButton class]]' – benzado

1

私はUIButton(MyCustomButton)のサブクラスを作成し、あなたのサブクラスのコンストラクタ内たい文体どんな要素適用をお勧めします。上記で示唆したよう「にStyleManager」のいくつかの並べ替えにUIButtonsを渡す

button.backgroundColor = [UIColor orangeColor]; 

を言うよりも優れたアプローチですが、あなたはまだあなたのコードを通過し、

[StyleManager applyStyles:viewThatContainsButton]; 

このような何かを言わなければなりませんコードベース内のすべてのControllerといくつかのView要素にスタイルを適用するソリューションを広げます。サブクラスを作成すると、ビューごとに1行ではなく、1行のコードでスタイルを適用できます。一つのクラスにあなたの問題への解決策を収集

は、このソリューションのスプロールを排除し、同様にメンテナンス労力を削減する必要があります。

関連する問題