2012-11-21 21 views
4

我正在開發iPhone應用程序。在這個應用程序中我有4種不同的意見。在所有視圖中我設置背景顏色。見下面的代碼如何使用UIColor類設置全局變量

self.view.backgroundColor = [UIColor colorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f]; 

我正在測試背景顏色的各種顏色。當我必須改變任何顏色時,我需要在所有視圖控制器中進行更改。而不是我可以讓這個全局變量?我不知道如何在全局變量中設置UIColor。請給我一些建議。

回答

9

很簡單。
在AppDelegate.h:

#define kGlobalColor [UIColor colorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f] 

在ViewControllers:

#import "AppDelegate.h" 

self.view.backgroundColor = kGlobalColor; 
+0

我上面的回答使用。但是這給了我一個錯誤。 **使用未聲明的標識符'kGlobalColor'** –

+0

不要忘記在視圖控制器中導入常量文件,在這種情況下,AppDelegate.h – pbibergal

+0

我也這樣做了。 –

0

創建constant.h文件的NSObject和定義該彩色全局

的#define globalColor [的UIColor colorWithRed:(238.0f/255.0f)綠色:(251.0f/255.0f)藍色:(255.0f/255.0f)alpha:0.8f];

,當你想使用它只是導入其他常量文件明智選擇2波紋管是..

第二個選項

AppDelegate.h文件只是財產合成像波紋管的UIColor的一個變量。 。

@interface AppDelegate : UIResponder <UIApplicationDelegate>{ 
    ///your Data 
    UIColor *globalColor; 
} 

@property (nonatomic,retain) UIColor *globalColor; 

,並在像波紋管.m文件合成..

@syntesize globalColor; 

didFinishLaunchingWithOptions方法只是asssign顏色來這個變量..

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
     globalColor = [UIColor colorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f]; 

} 

,當你要使用這種顏色使用這樣的..

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; 
    self.view.backgroundColor = appDelegate.globalColor; 
+0

這是可能的,但不是最佳的方式來做到這一點。 – pbibergal

+0

亞友,所以我也給這個替代選項我的第一個選項是恆定文件隊友.. :) –

0

比使用全局變量更好是延長UIColor。請使用構造類別,提供你的顏色:

的UIColor + mycolor.h:

@interface UIColor (mycolor) 
+ (UIColor*) myColor; 
@end 

的UIColor + mycolor.m:

+ (UIColor*) systemBlue 
{ 
return [UIColorcolorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f]; 
}