如何将UITableView中的单元格颜色设置为透明?

时间:2013-07-17 01:06:07

标签: ios objective-c uitableview

我有一个UITableView,其中有几个静态单元格部分都在我的storyboard文件中设置。

我的问题是:如何将其中一个单元格的颜色设置为透明? 我已经尝试使用在视图下选择的单元格进入检查器>背景并将其设置为>清除颜色,但这样做会使单元格呈现“清晰”颜色,但单元格的边框仍然可见: enter image description here

有人可以帮助我在没有边界的情况下实现这一目标吗?感谢

****编辑****我尝试将alpha级别设置为0,但这似乎没有影响。

我也试图实现以下内容,但我得到与上图相同的结果:

_topCell.backgroundColor = [UIColor clearColor];

我也尝试过实施:

self.tableView.separatorColor = [UIColor clearColor];

并得到以下结果:

enter image description here

请忽略将标题与描述分开的垂直线,即带有垂直线图像的UIImageView

只是为了给你们一个想法,我这样做是因为最终我正在寻找一个清晰/干净的单元格,以添加一些圆形的矩形按钮,例如“短信”,“分享联系人”和& “添加到收藏夹”按钮如下所示:

enter image description here

3 个答案:

答案 0 :(得分:7)

在视图控制器中:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.backgroundColor = [UIColor clearColor];
    cell.layer.backgroundColor = [UIColor clearColor];//optional
    cell.backgroundView = nil;
}

只有当您使用图案图片(discussed here)设置自定义表背景颜色时,才会显示注释为“可选”的行。

当然,如果您只想将其应用于特定单元格,则需要将这些语句放在if块中。

答案 1 :(得分:2)

我实现了类似的功能,只是滥用部分和部分页脚。对应该组合在一起的每个重要行集使用部分(这是单元格样式的“分组”点)

例如,您可以创建一个枚举来跟踪它们:

enum Sections
{
    SectionName,
    SectionPhone,
    SectionAddress,
    // etc...
    SectionCount
};

然后,正常使用这些部分:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return SectionCount;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section == SectionName)
    {
        return 2; // First name, last name
    }
    else if (section == SectionPhone)
    {
        return 1; // Just his phone number
    }
    else if (section == SectionAddress)
    {
        return 4; // Country, State, Street, Number
    }
    // etc...
}

要获得“动作”,您可以添加与特定部分相关的动作,然后只需添加两个方法

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 52;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    // Only the Address has action buttons, for example
    if (section != SectionAddress)
    {
        return nil;
    }

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 64)];

    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    UIButton *button3 = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    [button1 setTitle:@"Action 1" forState:UIControlStateNormal];
    [button2 setTitle:@"Action 2" forState:UIControlStateNormal];
    [button3 setTitle:@"Action 3" forState:UIControlStateNormal];

    button1.frame = CGRectMake(8, 8, 96, 44);
    button2.frame = CGRectMake(button1.frame.origin.x + button1.frame.size.width + 8, 8, 96, 44);
    button3.frame = CGRectMake(button2.frame.origin.x + button1.frame.size.width + 8, 8, 96, 44);

    [view addSubview:button1];
    [view addSubview:button2];
    [view addSubview:button3];

    return view;
}

返回具有独立按钮的视图。

preview

答案 2 :(得分:0)

cell.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.35];