1

我的UITableView故事板文件中设置了几个静态单元格部分。

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

有人可以无国界地帮助我实现这一目标吗?谢谢

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

我也尝试过执行以下操作,但得到的结果与上图相同:

_topCell.backgroundColor = [UIColor clearColor];

我也尝试过实现:

self.tableView.separatorColor = [UIColor clearColor];

并得到以下结果:

在此处输入图像描述

请忽略将标题与描述分开的垂直线,这只是一个UIImageView带有垂直线的图像。

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

在此处输入图像描述

4

3 回答 3

7

在您的视图控制器中:

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

仅当您使用图案图像设置自定义表格背景颜色时才需要注释为“可选”的行(如此处所述)。

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

于 2013-07-17T02:17:24.620 回答
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;
}

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

预览

于 2013-07-17T01:55:30.653 回答
0
cell.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.35]; 
于 2013-07-17T01:08:19.957 回答