自定义表格视图背景下的UITableViewCell颜色问题

6

我有一个UITableView,设置了自定义背景图像,代码如下:

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

背景看起来不错,但是我的UITableViewCells(默认单元格,而不是自定义)有一些奇怪的色调,并且包含“新项目”文本的UILabel似乎也有一些背景。我该如何去除它?我已经尝试过:

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

谢谢

备用文本 http://cl.ly/Cg5/content

3个回答

2

我认为这是直接将图像添加到表格视图的背景颜色中所导致的不良副作用。

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

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

然后将表视图的背景色设置为透明:

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

我希望这有所帮助!

你好,如果我需要背景图案与表格一起滚动怎么办?因此,我不能简单地使表格的背景透明并设置在表格下方的视图的背景。 - hzxu
嗨,hzxu,如果您将表格单元格的背景颜色设置为[UIColor clearColor],然后将表格单元格的背景视图设置为自定义图像(UIImageView),我认为您将能够实现这一点。然后,您应该能够使用您选择的表格背景。希望这可以帮助到您。 - Andy Bowskill

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];
...
}

0
有时候,当你在设置应用程序的图像并在模拟器上测试时,它们会在几次运行后冻结到应用程序中。即使你删除了图像文件,情况也可能如此。我建议您重置模拟器并重新启动Xcode。然后强制在模拟器上重新构建应用程序。这应该清除任何图像-即使是仍在被引用的背景图像。
如果这不是一个有效的解决方案...请确保您没有将冲突命令发送到同一个UiTablView对象(1个来自IB和1个来自Xcode编程)。有时您可能会忽视您在IB中设置了什么,并且与您在程序中告诉它执行的任务发生冲突。
如果以上方法都无法解决问题...请检查IB中的连接,确保引用正确的IBOutlet UITableView * tableview。同时确认头文件中已经包含了代理和数据协议。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接