我在Xcode4中使用故事板和Master-Detail核心数据模板。
我想在主视图控制器上为tableView设置背景图像。
要做到这一点对于iPhone来说很简单,我只是在MasterViewController.m的viewDidLoad中执行此操作:
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
然而,这不适用于iPad;而是在主tableView中显示默认背景。
我不认为这是一个splitViewController问题;从MasterViewController对象的角度来看,他应该总是拥有相同的tableView,对吧?事实上,我知道情况就是这样,因为这个代码适用于iPad和iPhone,在“backgroundColor”赋值之上的一行,这是使用相同的“self.tableView”对象:
self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"separator.png"]];
这就是它在iPhone上的样子,分隔符和背景图像都正常工作(对不起,还不能内嵌图片):
并且,在iPad上使用相同的代码:
我必须设置什么才能在主tableView上设置背景图像?
答案 0 :(得分:2)
您需要在界面构建器中清除背景。然后,您需要在self.tableView.backgroundColor = [UIColor clearColor];
中说viewDidLoad
。最后,在背后用适当的背景颜色放置UIView。出于某种原因,在UITableView本身中覆盖了背景内容。
答案 1 :(得分:1)
啊哈!我发现了秘密酱:
UIImage *backgroundImage = [UIImage imageNamed:@"foo.png"];
UIView *backgroundView = [[UIView alloc] init];
[backgroundView setBackgroundColor:[UIColor colorWithPatternImage:backgroundImage]];
[self.tableView setBackgroundView:backgroundView];
关键是使用[self.tableView setBackgroundView:...]
而不是属性self.tableView.backgroundColor = ...