彩色背景细胞

时间:2013-08-18 04:51:59

标签: ios objective-c cocoa-touch

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

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

我试图在转移到图像之前简单地改变颜色但是甚至无法使其工作。

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

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

不幸的是它仍然显示为白色。会很感激一些指导。

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

以下是如何在tableview中更改单元格的颜色。

您需要在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更改为您想要的任何内容。

希望这可以帮助您实现自己想要的目标。

答案 2 :(得分:0)

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