2012-07-07 76 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