使用以下任何方法设置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白色
答案 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)
IIRC,背景会自动设置,你必须在tableView中重置它们:willDisplayCell:forRowAtIndexPath: