2012-02-22 8 views
4

私は、同じシーンで(Storyboardを使用して)同じ方法でスタイリングされる4つのボタンを持っています。これは、プロパティのデフォルトのいくつかをオーバーライドする必要があるシンプルなスタイルですが、個々のボタンごとにこれを設定することは不必要に繰り返されるようです。私はサブクラスを作成すると思っていたが、私が読んだ多くの投稿(特にstackoverflow)は、UIButton(これは成功していない)に対してこれを行うことを警告している。UIButtonsのスタイル設定 - サブクラス?

このための最良のアプローチと考えられるものについて一般的なポインタを得ることを期待しています。アドバイスありがとう。

答えて

6

あなただけのiOS 5ターゲットにしている場合は、私は強くWWDC 2011セッションビデオのを必要Session 114 - Customizing the Appearance of UIKit Controls開発者のログインを見ることをお勧めします。

アプリ全体のスタイリングについて詳しく説明しています。


私はyujisアイデアを変更したい:ボタンをセットアップするためにUIButtonに

の.hをcategoryを使用してください。

@interface UIButton (MyStyling) 
-(void)configureMyButtonStyle; 
//other methods for more fine-grained control 
@end 

.M

@implementation UIButton (MyStyling) 
-(void)configureMyButtonStyle 
{ 
    [self setBackgroundColor:[UIColor colorWithRed:…]]; 
    [self setTitleColor: [UIColor colorWithRed:…] forState: UIControlStateNormal]; 
    //… 

} 
@end 

今、あなたはまた、いくつかのスタイルを区別するために、いくつかのパラメータで解析することができます。もちろん、[aButton configureMyButtonStyle]

を呼び出すことができます。

-(void)configureMyButtonForStyle:(NSInteger)style 
{ 
    if(style == 1){ 
     //… 
    } else if(style == 2) { 
     //.. 
    } else { 
     //fallback style 
    } 
} 

使用:

[aButton configureMyButtonForStyle:1]; 
+0

うわー - これは素晴らしいようです - 頭のおかげで! – resedasue

+0

と別の編集... – vikingosegundo

+0

ありがとうございます - カテゴリを設定することは意味があります。特に、いくつかの異なるビューで同じボタンのスタイリングを使用するためです。そして、私があなたのリンクの礼儀について学んだその外観プロキシも、別のオプションを提供するかもしれません。 – resedasue

4

サブクラスは、ここではやり過ぎのように思えます。コントローラの1つにプロパティを設定するメソッドを書くだけで、それをそれぞれUIButtonで呼び出すことができます。

または、IBで必要な方法でボタンをカスタマイズし、3回コピー&ペーストすることもできます。

+0

返信方法ありがとうございます。 – resedasue

関連する問題