我想设置2个完全不同的单元格外观(和内容)。 (一个选中,一个未选中)。
此代码有效,但是因为所选单元格的图像透明度为50%,我可以在底部看到BackgroundView。
在clear中,selectedBackgroundView提供了一种很好的方法来填充单元格,其中元素仅在选中时可见。是否有另一个位置而不是BackgroundView来填充单元格,这个位置将不会出现在selectedBackgroundView
上- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"hello";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
UIImage *image = [UIImage imageNamed:@"listview_btn.png"];
UIImage *imageThumb = [UIImage imageNamed:@"01_thumb.jpg"];
UIImageView* imageView = [[UIImageView alloc] initWithImage:imageThumb];
[imageView setFrame:CGRectMake(0, 0, 50, 67)];
[cell setBackgroundView:[[UIImageView alloc]initWithImage:image] ];
[cell.backgroundView addSubview:imageView];
UIImage *imageSel = [UIImage imageNamed:@"listview_btn_on.png"];
UIImage *imageThumbSel = [UIImage imageNamed:@"01_thumb_Sel.jpg"];
UIImageView* imageViewSel = [[UIImageView alloc] initWithImage:imageThumbSel];
[imageViewSel setFrame:CGRectMake(110, 0, 50, 67)];
[cell setSelectedBackgroundView:[[UIImageView alloc]initWithImage:imageSel] ];
[cell.selectedBackgroundView addSubview:imageViewSel];
答案 0 :(得分:0)
使选定的背景视图不透明。由于它总是插在背景视图上方,因此您可以在Photoshop或其他图形编辑器中将它们合成,并将结果用作选定的背景视图。
如果你买不起这种方法(我仍然强烈推荐它),你可以继承UITableViewCell
并覆盖setHighlighted:animated
和setSelected:animated
以在选择时将背景视图属性设置为nil /突出显示并在取消选择/取消突出显示时恢复它。然而,它是一种更为复杂的方法,恕我直言。