UITableView背景颜色

时间:2011-07-17 13:46:05

标签: ipad uitableview

我已经在UITableView for ios 4.2上看过各种关于背景颜色的帖子,但我似乎无法改变背景颜色。

UIView *bgView = [[[UIView alloc] init] autorelease];
bgView.backgroundColor = [UIColor blackColor];
bgView.opaque = YES;
self.myTableView.backgroundView = bgView;

我已将此代码放在viewDidLoad中,但它不会更改颜色。我的UITableView是UIViewController中的一个IBOutlet,带有UITableViewDelegate& UITableViewDataSource所以我在viewDidLoad上思考UITableView已经渲染,我无法改变它的背景颜色。

编辑* - UITableView已分组

6 个答案:

答案 0 :(得分:37)

尝试将表格视图的背景视图设置为nil,并设置表格视图的背景颜色

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.myTableView.backgroundView = nil;
    self.myTableView.backgroundColor = [UIColor blackColor];
}

答案 1 :(得分:19)

只需更改tableView和tableView的backgroundView的backgroundColor属性。

- (void)viewDidLoad {
    [super viewDidLoad];

   id desiredColor = [UIColor clearColor];
   self.tableView.backgroundColor = desiredColor;
   self.tableView.backgroundView.backgroundColor = desiredColor;
}

答案 2 :(得分:4)

确认所有iOS的Edward Huynh解决方案< 6.0

如果尚未在.h

中声明myTableView,请在viewDidLoad中使用以下代码
self.tableView.backgroundView = nil;
self.tableView.backgroundColor = [UIColor greenColor];

如果要将图案加载为背景

,请添加以下行
self.tableView.opaque = NO;
self.tableView.backgroundColor = [UIColor clearColor];
self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"myImage"]];

答案 3 :(得分:0)

使用此委托更改颜色

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = [UIColor redColor];
}

编辑1:

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

答案 4 :(得分:0)

0 x 0像素的背景视图不可见。尝试使用initWithFrame:为视图提供实际大小。

答案 5 :(得分:0)

只是添加到此。我需要更改tableview的uiscrollview背景颜色以获得特定效果。您可以全局执行此操作:

[[UIScrollView appearance] setBackgroundColor:[UIColor whiteColor]];

或将其限制在单个控制器(iOS9):

[[UIScrollView appearanceWhenContainedInInstancesOfClasses:@[[MyViewController class]]] setBackgroundColor:[UIColor whiteColor]];