我正在使用头文件来设置应用程序的背景。我有类似的东西:
#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
一起使用?
答案 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;