2

UIColorタイトル/ナビゲーション バーに色を付けるために、すべてのビュー コントローラーで使用したいがあるとします。そのようなプロパティを宣言する最良の方法は何だろうと思っていました。アプリケーションデリゲートのメンバーとして宣言する必要がありますか? グローバル プロパティのモデル クラスを作成し、静的関数を宣言します+ (UIColor)getTitleColorUIColorオブジェクトをすべてのView Controllerに渡しますか? 私が説明していない別の方法はありますか?

4

2 に答える 2

6

これを行う方法はたくさんあります。私はカテゴリを置くことによってそれをするのが好きですUIColor

UIColor + MyAppColors.h

@interface UIColor (MyAppColors)

+ (UIColor *)MyApp_titleBarBackgroundColor;

@end

UIColor + MyAppColors.m

#import "UIColor+MyAppColors.h"

@implementation UIColor (MyAppColors)

+ (UIColor *)MyApp_titleBarBackgroundColor {
    static UIColor *color;
    static dispatch_once_t once;
    dispatch_once(&once, ^{
        color = [UIColor colorWithHue:0.2 saturation:0.6 brightness:0.7 alpha:1];
    });
    return color;
}

@end

UIColor+MyAppColors.h次に、タイトルバーの背景色が必要なファイルをインポートし、次のように呼び出すことで使用できます。

myBar.tintColor = [UIColor MyApp_titleBarBackgroundColor];
于 2012-09-10T18:17:56.493 に答える
0

あなたがやろうとしていることからすると、見た目を使えばもっと簡単にできると思います。さまざまな種類のインターフェイス要素すべてに、さまざまな色を割り当てることができます。詳細については、UIAppearance プロトコルを確認してください。

これがあなたが望むものでない場合は、@ rob mayoffの回答:カテゴリを使用することをお勧めします。

于 2012-09-10T18:23:03.023 に答える