UITableViewCell selectedBackgroundView不起作用

时间:2013-08-06 17:34:18

标签: ios uitableview

我的UITableViewCells都是预先定义的“Subtitle”风格。我想将所选单元格的背景图像设置为另一张图片。我尝试了每种方法来实现这一点,并且stackoverflow上讨论的所有方法似乎都失败了。 我再次尝试了一些更简单的方法来更改selectedBackgroundView属性,例如:

cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.bounds] ;
cell.selectedBackgroundView.backgroundColor = [UIColor yellowColor];

但它不起作用。这有什么问题?

2 个答案:

答案 0 :(得分:17)

据我了解,您想将所选背景图像设置为您的单元格?

cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"backgroundImage.png"]];

修改

据我所知,UITableViewCell在选择此类常见案例后无法突出显示:

  1. 设置了cell.selectionStyle = UITableViewCellSelectionStyleNone;
  2. 您实施了willSelectRowAtIndexPath并返回nil;
  3. 设置[self.tableView setAllowsSelection:NO];
  4. 可以设置self.tableView.userInteractionEnabled = NO;或cell.userInteractionEnabled = NO;
  5. 您已将UITableViewCell子类化并实施此类方法不正确setSelected:animated:setHighlighted:animated
  6. 可能会分享您的cellForRowAtIndexPath方法代码以调查问题

答案 1 :(得分:0)

您可以通过多种方式更改高光颜色。

更改单元格的selectionStyle属性。如果您将其更改为UITableViewCellSelectionStyleGray,则会显示为灰色。

您还可以在tableView:didSelectRowAtIndexPath:

中查看该属性
//do something like this for color
cell.selectionStyle= UITableViewCellSelectionStyleGray;

// for image
cell.selectedBackgroundView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"imageName"]];

更改selectedBackgroundView属性。实际上创建蓝色渐变的是一个视图。您可以创建视图并绘制您喜欢的内容,并将视图用作表格视图单元格的背景。

祝你好运..