半透明的UITableViewCell用于分组UITableView?

时间:2011-09-29 18:18:47

标签: ios uitableview

我想创建一个TRANSLUCENT分组表视图单元格。换句话说,我想看到分组表视图背景模式,但我不想完全清除单元格。我已经看到很多关于透明细胞的问题,但没有一个问题可以制作半透明(仅部分透明)细胞。

这就是我正在尝试的:

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.contentView.backgroundColor = [UIColor colorWithWhite:1.0f alpha:0.5f];
    cell.backgroundColor = [UIColor clearColor];
    cell.backgroundView.backgroundColor = [UIColor clearColor];
}

这就是结果: enter image description here

这几乎是正确的,除了单元格的contentView超出了分组单元格的圆角。

使用透明图像并设置单元格的背景视图,

已解决。本来仍然喜欢以编程方式进行,所以如果有人有解决方案,我会很乐意接受它。

已解决的第二部分也可以通过将backgroundView设置为新的UIView来完成,该UIView具有所需的背景颜色和圆角,通过QuartzCore的setCornerRadius调用视图的图层属性。

2 个答案:

答案 0 :(得分:3)

这应该是你所需要的:

cell.contentView.backgroundColor = [UIColor clearColor];
cell.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.5];

答案 1 :(得分:3)

对于其他想知道的人,我最终使用的代码是:

- (UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    //...  

    cell.contentView.backgroundColor = [UIColor clearColor];
    cell.backgroundColor = [UIColor clearColor];
    UIView *bgView = [[UIView alloc] init];
    [[bgView layer] setCornerRadius:10.0f];
    [bgView setBackgroundColor:[UIColor colorWithWhite:1.0f alpha:0.25f]];
    cell.backgroundView = bgView;

    //...

    return cell;
}