我一直尝试过,但无法成功设置TableView的backgroundColor。
当父视图控制器为tableView.backgroundColor
时,将cell.backgroundColor
和/或clearColor
设置为UIViewContoller
不起作用。
我的nib文件结构是
FileOwner
View
UITableView
(注意:我将TableView设置为groupsTable部分)
首次尝试,我在代码UIView
viewDidLoad
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 300)] autorelease;
[view setBackgroundColor:UIColor blueColor]; // color it just to see if it is created at the right place
[self.tableView sendSubViewToBack:view];
它有效,但它隐藏了细胞的内容。我能够看到标题的内容,但不能看到单元格内容。 (但是当我改变视图的坐标(0,150,160,300)时,我能够看到单元格的内容,但随后它松开了tableview的backgroundColor。
第二次尝试, 我创建了imageView
View
ImageView
UITableView
并设置self.tableView.backgroundColor = [UIColor clearColor];
但不起作用。
我用谷歌搜索,但没有和平的答案。
答案 0 :(得分:5)
具有分组样式的UITableView使用背景视图。要删除背景视图并显示背景颜色,请尝试以下任一操作:
tableView.backgroundView = nil;
tableView.backgroundView = [[[UIView alloc] init] autorelease];
之后,您应该能够正常设置背景颜色:
tableView.backgroundColor = [UIColor redColor];
顺便说一句,只有一个视图可以是另一个视图的父/超视图,而视图控制器不是视图。
答案 1 :(得分:3)
这一直对我有用:
UITableView *tableView = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStylePlain];
tableView.backgroundColor = [UIColor redColor];
[parentView addSubview:tableView];
确保tableView不是nil,不是隐藏的,具有正确的框架,并且已经添加到正确的父视图中。
答案 2 :(得分:2)
Swift版
let backgroundView = UIView(frame: CGRect(x: 0, y: 0, width: self.tableView.bounds.size.width, height: self.tableView.bounds.size.height))
backgroundView.backgroundColor = UIColor.redColor()
self.tableView.backgroundView = backgroundView
答案 3 :(得分:0)
UIView* backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height)];
[backgroundView setBackgroundColor:[UIColor redColor]];
[self.tableView setBackgroundView:backgroundView];