单元格背景颜色仅显示文本

时间:2009-02-10 09:26:42

标签: cocoa-touch

我已经使用以下代码来设置TableView单元格的背景颜色(在cellForRowAtIndexPath中)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;


        cell.backgroundColor = [UIColor yellowColor];
        cell.contentView.backgroundColor = [UIColor yellowColor];

        UIView* backgroundView = [ [ [ UIView alloc ] initWithFrame:CGRectZero ] autorelease ];
        backgroundView.backgroundColor = [ UIColor yellowColor ];
        cell.backgroundView = backgroundView;
        for ( UIView* view in cell.contentView.subviews ) 
        {
            view.backgroundColor = [ UIColor yellowColor ];
        }
    }

    // Set up the cell...
    if ([[menuList objectAtIndex:indexPath.row] isKindOfClass:[Category  class]])
    {
        cell.text = ((Category *)[menuList objectAtIndex:indexPath.row]).name;
    }
    else
    {
        [cell setText: [menuList objectAtIndex:indexPath.row]];
    }


    return cell;
}

然而,当它渲染时,只有部分单元格的背景应用类似这样(其中z是bg填充),即使附件的背景是彩色而不是文本。

xxxxxxxxxxxxxxxxxxxx
zzzSearch          
xxxxxxxxxxxxxxxxxxxx

我认为能够更改文本背景的唯一方法是在Interface Builder中设置整个表视图的背景颜色

2 个答案:

答案 0 :(得分:0)

我打赌你的文字是不透明的UILabel。我记得必须在内容文本UILabel中添加myText.backgroundColor = [UIColor clearColor]才能使其正常工作。

答案 1 :(得分:0)

我已经设法使用Custom UITableViewCell对象,但我确定必须有一种方法可以不用