2010-04-02 74 views
6

我有这样设置的自定义背景图片一个UITableView:自定义表视图背景的UITableViewCell色差问题

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]; 

背景似乎很好,但我UITableViewCells(默认细胞,而不是定制)有某种奇怪的色彩给他们,并且包含“新项目”文本的UILabel也似乎有某种背后的背景。我该如何删除它?我已经尝试过:

cell.backgroundColor = [UIColor clearColor]; 
cell.textLabel.backgroundColor = [UIColor clearColor]; 

感谢

alt text http://cl.ly/Cg5/content

回答

2

我相信这是一个令人讨厌的副作用,只需将图像直接添加到桌面视图的backgroundColor中即可。

尝试添加图像到视图的背景色:

[[self view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]]; 

,然后设置表视图的的backgroundColor是明确的:

[[self tableView] setBackgroundColor:[UIColor clearColor]]; 

我希望这帮助!

+0

这做到了,谢谢! – indragie 2010-04-05 17:33:13

+0

嗨,如果我需要背景图案与表格滚动呢?所以我不能简单地将桌子的背景变成透明的,并在桌子底下设置视图的背景。 – hzxu 2012-04-12 05:52:41

+0

嗨hzxu,我认为你将能够实现,如果你设置你的表格单元格的背景颜色为[UIColor clearColor],然后将你的表格单元格的背景视图设置为一个自定义图像(UIImageView)。然后,您应该可以使用您选择的表格背景。希望这可以帮助。 – 2012-04-16 19:01:36

0

有些时候,当你有一个应用程序设定的图像,并测试在模拟器上工作,他们得到冻结的应用程序为少数跑。不确定,即使删除图像文件也是如此;他们仍然不断弹出。

我会让你休息模拟器,并重新启动Xcode。然后在模拟器上强制重建应用程序。这应该清除任何图像 - 即使背景图像仍然被引用。

如果这不是一个可行的解决方案...尝试确保没有冲突的命令转到相同的UiTablView对象(从IB和1编程的Xcode)。有时候,你可能会忽略你在IB中设置了某些东西,并且它与你告诉它编程的内容相冲突。

如果这样不能解决问题......请检查IB中的连接,并确保重新显示正确的IBOutlet UITableView * tableview。并且头中有委托和数据协议。

0

如果你想有每个单元有背景设置并希望删除的文字的背景,也许你可以试试这个...


- (void)viewDidLoad { 
... 
self.tableView.backgroundColor = [UIColor clearColor]; 
... 
} 

- (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
... 
cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]; 
cell.textLabel.backgroundColor = [UIColor clearColor]; 
... 
}