UILabel和UITableViewCell的背景颜色不同

时间:2013-11-26 15:32:30

标签: objective-c uitableview colors uilabel

我正在尝试使用代码为我的应用设置一般颜色方案,以便在项目之间移植时很容易修改。但是,这些组件上的两种颜色会逐渐出现略有不同的颜色。我使用以下代码来设置我的UITableViewCell:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{    
    if ([indexPath row] %2 != 0)
    {
        [cell setBackgroundColor:kTableSecondaryCellColor];
    }
}

这是我的UILabel:

[self.lTitleBackground setBackgroundColor:kTableSecondaryCellColor];

正如您所看到的,我只是将两个元素的背景设置为kTableSecondaryCellColor,其设置如下:

#define kTableSecondaryCellColor [UIColor colorWithRed:(158.0f / 256.0f) green:(171.0f / 256.0f) blue:(4.0f / 256.0f) alpha:0.4f] 

然而,两种颜色的结果如下(绿色):

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:2)

您必须使用

cell.contentView.backgroundColor = kTableSecondaryCellColor;

答案 1 :(得分:1)

您应该更改单元格内容视图的背景颜色:

cell.contentView.backgroundColor = kTableSecondaryCellColor;

这应解决问题。

答案 2 :(得分:0)

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

这是我目前正在使用的代码,不透明度仅在iPhone上检测到,但我在此代码中有一个断点,当我使用iPad时,它肯定会被调用,只是不显示不透明度。我已经完成了设置,单元格设置相同,与UITableViews相同。