自定义UITableView背景颜色

时间:2011-06-10 16:42:29

标签: iphone uitableview colors background

问题很简单,但很烦人。我在视图控制器中放置了一个groupe样式的UITableView,并使控制器成为表视图的委托和数据源。

当我改变表格背景的颜色时,我使用:

UIColor *backColor = [UIColor colorWithRed:(15.0 / 255.0) green:(170.0 / 255.0) blue:(230.0 / 255.0) alpha: 0.75f];

[self.myTable setBackgroundColor:backColor];

并且在tableView:tableView cellForRowAtIndexPath:indexPath方法中,我只返回一个简单的单元格:

static NSString *CellIdentifier = @"CellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];    
if (cell == nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
 reuseIdentifier:moreCellIdentifier] autorelease];
}

cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
return cell;

但奇怪的是,在每个单元格的圆角处,颜色不正确,我认为这是因为单元格的一个子视图的框架比单元格大,我试图制作框架子视图很小但仍然失败。任何想法?谢谢。

2 个答案:

答案 0 :(得分:0)

尝试在tableView:tableView cellForRowAtIndexPath:indexPath功能中使用以下代码。

   NSString *CellIdentifier = [[NSString  alloc] initWithFormat:@"CellIdentifier_%d_%d",indexPath.section,indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];    
    if (cell == nil){
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
     reuseIdentifier:moreCellIdentifier] autorelease];
    }
    [CellIdentifier  release];
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    return cell;

答案 1 :(得分:0)

看看你的代码,我不清楚这一行是什么:

[self.myTable setBackgroundColor:backColor];

指的是。什么是myTable?什么是自我?

无论如何,如果你使用UITableViewController管理你的桌子,你应该改变这样的背景颜色:

UIColor *backColor = [UIColor colorWithRed:(15.0 / 255.0) green:(170.0 / 255.0) blue:(230.0 / 255.0) alpha: 0.75f];
tableViewController.tableView.backgroundColor = backColor;

如果你继承UITableViewController,那么执行该代码的最佳位置是viewWillAppear(使用self而不是tableViewController.tableView.backgroundColor)。