2012-07-07 37 views
1

我正在使用頭文件爲我的應用程序設置背景。我有類似:使用UIImage定義背景圖像

#define backgroundImage [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.jpeg"]] 

,但我想用UIImageView代替UIColor。我知道我可以這樣做:

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) 
[imageView setImage:[UIImage imageNamed:@"background.png"]]; 
self.tableView.backgroundView = imageView; 

但是,如何與#define一起使用?

回答

2

#define是一個預處理指令。這是什麼要做的是在任何地方使用backgroundImage你會得到[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.jpeg"]]

處理的最佳方式,這是使用的#define指定圖像名稱:

#define kBackgroundImage @"background.png" 

,然後用它在你的代碼:

// Use the table view bounds so the background view is the size of the table view 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.tableView.bounds; 

[imageView setImage:[UIImage imageNamed:kBackgroundImage]]; 
self.tableView.backgroundView = imageView; 

如果你想不過,你可以這樣做:

#define kBackgroundImage [UIImage imageNamed:@"background.png"] 

和:

//所以背景視圖是表視圖 的UIImageView * ImageView的= [[ALLOC的UIImageView] initWithFrame的大小使用表視圖界限:self.tableView.bounds;

[imageView setImage:kBackgroundImage]; 
self.tableView.backgroundView = imageView; 

如果您選擇,使整個代碼塊的預處理器定義,你可以使用\作出新的線路。

#define UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.tableView.bounds; \ 
[imageView setImage:[UIImage imageNamed:kBackgroundImage]]; \ 
self.tableView.backgroundView = imageView; 
+0

是否有可能在swift中做同樣的事情? – Nicholas 2014-12-23 11:42:22