更改UITableView的单元格颜色

时间:2012-06-27 18:38:23

标签: ios uitableview

我试图改变填充UITableView cell.backgroundColor = [UIColor blueColor]的单元格的颜色;但它对于细胞仍然是黑色的。

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

if (tofriend) {

    if (indexPath.section==0){


        static NSString *CellIdentifier;
        CellIdentifier= @"MyCell";


        MyCell *cell =(MytCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


        if (!cell) {
            [[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil];                 cell = myCell;


        }
        cell.backgroundColor=[UIColor blueColor];

好的,我明白了 它是cell.contentView.backgroundColor。

3 个答案:

答案 0 :(得分:1)

由于单元格缓存,您应该在委托方法中更改背景颜色:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
}

cell.backgroundColor将在此方法中正确显示。

答案 1 :(得分:0)

看起来您正在尝试从笔尖加载单元格,但实际上从未将笔尖设置为MyCell

尝试更改为:

   if (!cell) {
       cell = [[[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil] objectAtIndex:0];
   }

答案 2 :(得分:0)

假设您的单元格正在加载,并且只有背景颜色没有变化,我认为您的自定义单元格MyCell中的其他元素正在覆盖单元格背景视图。

尝试将单元格中所有其他元素的bacgroundcolor设置为红色/黄色,并查看是否有任何cell.Background visibile。

btw:为什么不在自定义单元格中设置背景颜色?