使用UIImage定义背景图像

时间:2012-07-07 15:06:47

标签: objective-c ios background uiimageview

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

#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一起使用?

1 个答案:

答案 0 :(得分: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 = [[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;