数行のコードでアプリケーションのボタンのデフォルトの色を変更できるかどうか疑問に思っています。各ボタンの色を手動で変更するのは本当に退屈かもしれません。特にあなたがそれらをたくさん持っているなら。
たとえば、すべてのボタンを元の白ではなくオレンジにしたいとします。
よろしくお願いします、イリヤ。
数行のコードでアプリケーションのボタンのデフォルトの色を変更できるかどうか疑問に思っています。各ボタンの色を手動で変更するのは本当に退屈かもしれません。特にあなたがそれらをたくさん持っているなら。
たとえば、すべてのボタンを元の白ではなくオレンジにしたいとします。
よろしくお願いします、イリヤ。
残念ながら、グローバル設定はありません。
オブジェクトのすべてのビューとサブビューを繰り返し処理し、それらのタイプをクエリしてから、必要に応じてカスタム カラーを適用することができます。これにより、ビューを渡す場所をアプリケーション内に 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
}
}
}
UIButton (MyCustomButton) のサブクラスを作成し、サブクラスのコンストラクター内で必要なスタイル要素を適用することをお勧めします。
上で提案したように、ある種の「StyleManager」にUIButtonsを渡すことは、言うよりも良いアプローチです
button.backgroundColor = [UIColor orangeColor];
ただし、コードを調べて、次のように言う必要があります
[StyleManager applyStyles:viewThatContainsButton];
これにより、コード ベース内のおそらくすべての Controller および一部の View 要素にスタイルを適用するソリューションが広がります。サブクラスを作成すると、ビューごとに 1 行ではなく、1 行のコードでスタイルを適用できます。
問題の解決策を 1 つのクラスにまとめると、この解決策の無秩序な広がりがなくなり、メンテナンスの労力も削減されます。