设置UITableViewCell backgroundView和selectedBackgroundView在iOS7中不起作用

时间:2014-02-21 05:07:14

标签: ios objective-c uitableview

使用以下任何方法设置backgroundView和selectedBackgroundView似乎不起作用。

UIView * bSg = [[UIView alloc] init];
UIView * bg = [[UIView alloc] init];
UIImageView *topSImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bgActive"]];
UIImageView *topImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg"]];
[bg addSubview:topImage];
[bSg addSubview:topSImage];
self.backgroundView = bg;
self.selectedBackgroundView = bSg;

尝试过设置所有这些细胞方法

- (void)layoutSubviews
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
- (id)init

当放入layoutSubviews时,它在第一次加载时有效,但在选择单元格时没有任何反应(也就是未设置selectedBackgroundView)。

是的,我已在layoutSubviews中设置self.backgroundColor = [UIColor clearColor]以清除iOS7白色

2 个答案:

答案 0 :(得分:2)

以下是我在表格视图中为单元格设置背景图像的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  ...
  //set cell background
  UIImageView *background = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"shopsCellBackground"]];
  background.backgroundColor = [UIColor clearColor];
  background.opaque = NO;
  cell.backgroundView = background;
  ...
}

我认为关键是在tableView:cellForRowAtIndexPath表视图方法中为单元格设置背景图像和所选背景图像,而不是在单元格类中。

答案 1 :(得分:1)