更改单个UITableViewCell的UITableView separatorColor

时间:2010-09-14 18:34:59

标签: iphone

我有一个UITableView,它使用各种自定义UITableViewCells

我希望能够让其中一个表格单元格显示出与其他单元格不同的分隔符颜色。

我知道tableview.seperatorColor更新了整个tableView。是否存在我遗漏的细胞特定属性或其他方法?

感谢您的任何提示。对不起,如果我只是在UITableViewCell类中的某些内容。

3 个答案:

答案 0 :(得分:9)

免责声明 - 在我的具体情况下,这对我来说当时。它不能保证工作,它似乎不再起作用,我现在建议你继承UITableViewCell

希望在分组UITableView.separatorColor中的群组/部分之间设置UITableView的方式有所不同。

您不一定需要继承UITableViewCell。您可以尝试在每次调用tableView.separatorColor时设置tableView:cellForRowAtIndexPath:

例如,如果您希望分隔符在第一部分中使用默认颜色可见,在第二部分的第一行/单元格中可见,而在第二部分的其余行中不可见,则可以执行以下操作:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.section) {
    case 0:
        tableView.separatorColor = nil;
        break;
    case 1:
        switch (indexPath.row) {
            case 0:
                tableView.separatorColor = nil;
                break;
            case 1:
                tableView.separatorColor = [UIColor clearColor];
                break;
            default:
                break;
        }
        break;
    default:
        break;
}

答案 1 :(得分:8)

所有单元格中tableView.separatorColor都是全局的。

如果您想进一步自定义这些颜色,最好的办法是将separatorStyle属性设置为UITableViewCellSeparatorStyleNone,并覆盖UITableViewCell

然后,您可以在contentView的{​​{1}}中绘制自己的自定义分隔符,并对其进行自定义。

答案 2 :(得分:4)

从iOS 7开始,这样的东西似乎工作正常:

  1. 在您的UITableView上设置UITableViewCellSeparatorStyleSingleLine
  2. 对于要更改分隔符颜色的单元格,首先通过更改insets cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, 10000);
  3. 来隐藏分隔符
  4. 更改应具有不同分隔符颜色cell.backgroundColor = [UIColor greenColor];
  5. 的单元格的背景颜色

    现在分隔符的颜色与单元格的背景颜色相同。请注意,所有这些都可以在您的单元格的xib文件中设置,而无需任何代码。另请注意,您可能希望将单元格内容视图的背景颜色更改为与默认值不同的颜色(可能为白色),因此绿色仅显示在分隔线上。