UITableViewCell 的backgroundColor不起作用的问题?
在开发时,想要在tableview中的某一个Cell设置选中状态,并且Cell的背景颜色是一个自定义颜色。
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
<span style="white-space:pre"> </span>//省略....
cell.textLabel.font = [UIFont systemFontOfSize:6.0];
cell.textLabel.text = @"13832207020";
if (indexPath.row==0) {
[cell setBackgroundColor:[UIColor colorWithRed:100.0f/255.0f green:176.0f/255.0f blue:0.0f/255.0f alpha:1.0f]];
}
else{
[cell setBackgroundColor:[UIColor whiteColor]];
}
return cell;
}
这样的话,第1行cell就应该是我们设置好的颜色,不过请注意,此方法在UITableViewStylePlain的风格下有效,在 UITableViewStyleGrouped的样式下是无效的!这个跟tableview的backgroundView和backgroundColor是没有关系的,个人猜想应该是在Grouped风格下,cell选中的颜色有系统的view遮罩,导致我们设置的无法显示出来。
【补充】如果想在reload或init时设置tableview的某一cell为 selected状态,千万不要使用cell setSelected:YES animated:YES,使用tableview的方法:
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
terminalTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
在开发时,想要在tableview中的某一个Cell设置选中状态,并且Cell的背景颜色是一个自定义颜色。
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
<span style="white-space:pre"> </span>//省略....
cell.textLabel.font = [UIFont systemFontOfSize:6.0];
cell.textLabel.text = @"13832207020";
if (indexPath.row==0) {
[cell setBackgroundColor:[UIColor colorWithRed:100.0f/255.0f green:176.0f/255.0f blue:0.0f/255.0f alpha:1.0f]];
}
else{
[cell setBackgroundColor:[UIColor whiteColor]];
}
return cell;
}
这样的话,第1行cell就应该是我们设置好的颜色,不过请注意,此方法在UITableViewStylePlain的风格下有效,在 UITableViewStyleGrouped的样式下是无效的!这个跟tableview的backgroundView和backgroundColor是没有关系的,个人猜想应该是在Grouped风格下,cell选中的颜色有系统的view遮罩,导致我们设置的无法显示出来。
【补充】如果想在reload或init时设置tableview的某一cell为 selected状态,千万不要使用cell setSelected:YES animated:YES,使用tableview的方法:
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
terminalTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];