2012-02-22 44 views
4

我有四個按鈕將在同一場景中以相同方式進行樣式設置(使用Storyboard)。這是簡單的樣式,需要重寫一些屬性默認值,但似乎不必要地重複爲每個單獨的按鈕進行設置。我在想我會創建一個子類,但是我讀過的很多帖子(特別是在stackoverflow上)警告不要這樣做UIButton(以及我所做的嘗試都沒有成功)。造型UIButtons - 子類?

只希望得到一個通用的指針,認爲這是最好的方法。感謝您的任何建議。

回答

6

如果你的目標只是iOS 5中,我強烈建議看Session 114 - Customizing the Appearance of UIKit Controls開發商登錄所需的WWDC 2011屆影片

它詳細解釋了應用程序範圍的樣式。


我想修改yujis想法:使用上的UIButton一個category設置按鈕

.H。

@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 2012-02-22 22:35:19

+0

和另一個編輯... – vikingosegundo 2012-02-22 23:43:45

+0

感謝你 - 設置一個類別是有道理的 - 尤其是因爲我會在幾個不同的視圖上使用相同的按鈕樣式。我剛剛瞭解到你的鏈接的外觀代理可能也提供了另一種選擇。 – resedasue 2012-02-23 00:02:10

4

子類,似乎有點小題大做這裏。你可以寫一個方法,以你想要的方式在你的控制器中設置屬性,並在每個UIButton上調用它。

或者您可以隨時在IB中按照自己的方式自定義一個按鈕,然後複製並粘貼三次。

+0

感謝您的答覆 - 它的方法。 – resedasue 2012-02-22 22:31:26