如何访问主从故事板模板中的 tableView?
我在 Xcode4 中使用故事板和主从核心数据模板。
我想在主视图控制器上设置我的 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,分隔符和背景图像都可以工作(抱歉,还不能内嵌发布图片):
https://i.sstatic。 net/JaULS.png
并且,使用相同的代码,在 iPad 上:
https://i.sstatic.net/vVKmt.png
我必须做什么设置以便在主tableView上设置背景图像?
I'm using storyboarding and the Master-Detail Core Data template in Xcode4.
I want to set the background image for my tableView on the master view controller.
To do this was simple for the iPhone, I just did this in viewDidLoad of the MasterViewController.m:
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
However, this doesn't work for the iPad; the default background is being shown instead in the master tableView.
I wouldn't think this was a splitViewController issue; from the perspective of the MasterViewController object, he should always have the same tableView, right? In fact, I know this is the case, because this code works on both iPad and iPhone, a line above the "backgroundColor" assignment, and this is using the same "self.tableView" object:
self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"separator.png"]];
This is what it looks like on the iPhone, with both the separator and background image working (sorry, can't post pictures inline yet):
https://i.sstatic.net/JaULS.png
And, using the same code, on the iPad:
https://i.sstatic.net/vVKmt.png
What do I have to set in order to set the background image on the master tableView?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要在界面生成器中使背景清晰。然后,您需要在
viewDidLoad
中输入self.tableView.backgroundColor = [UIColorclearColor];
。最后,在其后面放置一个具有适当背景颜色的 UIView。由于某种原因,背景内容在 UITableView 本身中被覆盖。You need to make the background clear in interface builder. Then, you need to say
self.tableView.backgroundColor = [UIColor clearColor];
in yourviewDidLoad
. Finally, put a UIView behind it with the appropriate background color. For some reason, the background stuff is overridden in the UITableView itself.啊哈!我找到了秘诀:
关键是使用
[self.tableView setBackgroundView:...]
而不是属性self.tableView.backgroundColor = ...
Aha! I found the secret sauce:
The key is using
[self.tableView setBackgroundView:...]
instead of the propertyself.tableView.backgroundColor = ...