我尝试过多种方法来设置未选中的表格单元格的背景图像,但没有成功:
1- In IB setting the image field
2- cell.contentView.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"list.png"]];
3- cell.imageView.image = [UIImage imageNamed:@"list_selected.png"];
一切似乎都失败了。所选单元格的图像设置有效,但不适用于未选择的单元格。有谁知道这里可能有什么问题?
由于
答案 0 :(得分:19)
尝试将backgroundView设置为图像的imageView。
Jason Moore的代码示例(TomH更正):
cell.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]] autorelease];
答案 1 :(得分:3)
cell.backgroundImage
不再存在。而是使用:
cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]];
答案 2 :(得分:2)
我一直在使用以下UITableViewDelegate方法,并设置cell.backgroundColor属性。在屏幕上实际绘制单元格之前,它最后被调用:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row%2)
cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TableCell-BG-Dark.png"]];
else
cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TableCell-BG-Light.png"]];
}
是的,我正在使用UITableViewCell的自定义子类。
答案 3 :(得分:1)
尝试这样做:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:DateCellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:DateCellIdentifier] autorelease]
UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"gradient.png"]];
[cell setBackgroundView:img];
[img release];
}
cell.textLabel.text = @"Text";
}
答案 4 :(得分:0)
我在尝试更改单元格的背景颜色方面也遇到了问题,我最后因为不同的原因对单元格进行了子类化,这是我的单元格背景更改代码:
if (indexPath.row % 2 == 0) {
cell.contentView.backgroundColor = [UIColor colorWithWhite:230.0/255 alpha:1];
} else {
cell.contentView.backgroundColor = [UIColor colorWithWhite:242.0/255 alpha:1];
}