0

我有一张非常简单的桌子,里面有一个大单元格。里面有静态数据。

我想要一个重复的平铺图像作为表格的背景。我认为我需要做的是将图像放在单元格中,而不是表格中,我在正确的轨道上吗?

我试图在移动到图像之前简单地改变颜色,但甚至无法做到这一点。

我尝试为表格单元格和内容视图创建一个参考出口,并添加了以下代码:

tblCell.backgroundColor = [UIColor redColor];
tblContent.backgroundColor =[UIColor redColor];

不幸的是,它仍然显示为白色。希望得到一些指导。

4

3 回答 3

2

您通常希望在-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath.

您可以从图像中创建颜色,[UIColor colorWithPatternImage: image]并将其作为单元格的背景重复。

听起来您正在声明一个静态表视图。您不能使用UITableViewDataSource methods,但可以使用UITableViewDelegateMethods

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // defaults to white and covers your background
    cell.textLabel.backgroundColor = [UIColor clearColor];

    // turn an image into a color
    UIImage *img = [UIImage imageNamed: @"tilePattern"];
    UIColor *pattern = [UIColor colorWithPatternImage: img];
    cell.contentView.backgroundColor = pattern;
}
于 2013-08-18T06:56:49.423 回答
1

这是您如何更改表格视图中单元格的颜色。

您需要在之后添加以下方法CellForRowAtIndexPath以更改单元格的颜色。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row%2 == 0) {
    UIColor *redColor = [UIColor redColor];
    cell.backgroundColor = redColor;
}
}

请注意,对单元格内容的任何修改都必须在该WillDisplayCell方法中进行。现在您可以随时将其更改UIColor为您想要的任何内容。

希望这可以帮助你实现你想要的。

于 2013-08-18T06:26:35.860 回答
0

您需要清除 cell.textLabel 的颜色,以便可以看到背景颜色。

于 2013-08-18T05:00:05.113 回答