1

我正在使用头文件为我的应用程序设置背景。我有类似的东西:

#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呢?

4

1 回答 1

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"]

和:

// 使用table view bounds 所以背景view是table view的大小 UIImageView *imageView = [[UIImageView alloc] 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; 
于 2012-07-08T00:18:16.717 回答