5

たとえば、異なる場所で同じ色を手動で設定することを避けるために、Interface Builder で定数を使用する方法があるかどうか疑問に思います (非常に面倒な作業になる場合があります...)。

現在、コードで色を設定し、#define を使用して色を設定していますが、明らかに IB は #define を使用できません...

4

2 に答える 2

0

アプリ全体で同じスタイルを確保するために、さまざまなコントロールをサブクラス化することで、この問題を回避しました。欠点は、インターフェイスビルダーでスタイルを表示できないのはワイヤフレームだけであるということです。

たとえば、私は

@interface MyButton : UIButton 
@end


@implementation MyButton

 -(void) initialize{
self.backgroundColor = [UIColor MyButonColor]; // Using a category on UIColor
}

- (id)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self)  {
        [self initialize];
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)decoder {
    if (self = [super initWithCoder:decoder]) {
        [self initialize];
    }
    return self;
}
于 2011-09-03T13:39:35.933 に答える
-1

これを行う最も簡単な方法は、UIColor クラスにカテゴリを作成し、その上にクラス メソッドを作成することだと思います。例えば:

これをヘッダー ファイルに配置します (例: UIColor+CustomColors.h):

@interface UIColor ( CustomColors )
+ (UIColor *)myCustomColor;
@end

これを実装ファイルに配置します (例: UIColor+CustomColors.m)

@implementation UIColor ( CustomColors )
+ (UIColor *)myCustomColor
{
   return [UIColor colorWithRed:0.2 green:0.5 blue:0.2 alpha:1.0];
}
@end

次に、次のように、コード内の任意の場所でクラス メソッドにアクセスできます。

...
self.view.backgroundColor = [UIColor myCustomColor];
...

詳細については、カテゴリに関する Apple のドキュメントを参照してください。

または、システム カラー パレットを使用して色の見本を保存することもできます。これを行うには、システム カラー パレットを呼び出し、色を選択して色のグリッドにドラッグするだけです。

これらの色は、作成するすべての Interface Builder ドキュメントだけでなく、システム カラー パレットを使用するすべてのアプリケーションで使用できるようになりました。

カラーパレット http://img.skitch.com/20091030-dhh3tnfw5d8hkynyr7e5q3amwg.png

于 2009-10-30T02:14:26.370 に答える