我已经使用以下代码来设置TableView单元格的背景颜色(在cellForRowAtIndexPath中)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.backgroundColor = [UIColor yellowColor];
cell.contentView.backgroundColor = [UIColor yellowColor];
UIView* backgroundView = [ [ [ UIView alloc ] initWithFrame:CGRectZero ] autorelease ];
backgroundView.backgroundColor = [ UIColor yellowColor ];
cell.backgroundView = backgroundView;
for ( UIView* view in cell.contentView.subviews )
{
view.backgroundColor = [ UIColor yellowColor ];
}
}
// Set up the cell...
if ([[menuList objectAtIndex:indexPath.row] isKindOfClass:[Category class]])
{
cell.text = ((Category *)[menuList objectAtIndex:indexPath.row]).name;
}
else
{
[cell setText: [menuList objectAtIndex:indexPath.row]];
}
return cell;
}
然而,当它渲染时,只有部分单元格的背景应用类似这样(其中z是bg填充),即使附件的背景是彩色而不是文本。
xxxxxxxxxxxxxxxxxxxx
zzzSearch
xxxxxxxxxxxxxxxxxxxx
我认为能够更改文本背景的唯一方法是在Interface Builder中设置整个表视图的背景颜色
答案 0 :(得分:0)
我打赌你的文字是不透明的UILabel。我记得必须在内容文本UILabel中添加myText.backgroundColor = [UIColor clearColor]
才能使其正常工作。
答案 1 :(得分:0)
我已经设法使用Custom UITableViewCell对象,但我确定必须有一种方法可以不用