在UITableView分隔符中更改插入区域的颜色

时间:2014-03-06 12:35:01

标签: ios uitableview custom-controls

我有一个自定义的UITableView,单元格有不同的背景颜色(在自定义backgroundView中设置)。但是,背景颜色仅应用于单元格中,而不是扩展到分隔符的插入区域。正如您在屏幕截图中看到的那样,彩色分隔符左侧有一个白色区域。

我们如何改变这条白线的颜色?我们希望通过将其设置为与单元格背景相同的颜色来使该行“消失”。谢谢!

enter image description here

7 个答案:

答案 0 :(得分:48)

将单元格的背景颜色设置为与contentView的背景颜色相同,似乎可以获得最佳效果。

cell.backgroundColor = cell.contentView.backgroundColor;

这将处理accessoryView的颜色错误的情况。

答案 1 :(得分:5)

所以我自己就遇到了这个问题,这很奇怪,因为它似乎在一些tableviews上工作正常。我假设您使用的灰色是您的tableview的背景颜色。如果没有,此解决方案可能无效。

当存在分隔符插入时,iOS 7中的单元格似乎并不总是拾取tableview背景颜色,因此您需要手动将单元格背景设置为clearColor。有趣的是,在故事板中设置这个值对我来说不起作用,我不得不在代码中这样做。加上这个:

cell.backgroundColor = [UIColor clearColor];

在此委托函数中配置单元格时:

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

答案 2 :(得分:4)

这是iOS 7中的默认设置。但您可以将其更改为iOS 6的外观。请尝试下面的代码。你会惊讶的:

    tableView.separatorColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
    NSString *iosversion = [[UIDevice currentDevice] systemVersion];
    int version = [iosversion intValue];
    if(version>6)
    {
        tableView.separatorInset = UIEdgeInsetsZero;
    }

Swift 3 +:

tableView.separatorInset = UIEdgeInsets.zero

答案 3 :(得分:0)

将图像用于分隔符。这是实现预期结果的唯一简便方法。对于xib中的ios 7,我们可以使用边缘昆虫属性。

答案 4 :(得分:0)

转到故事板>属性检查器>分隔符插入,然后选择自定义并将左坐标从15更改为0。 它将完成。

答案 5 :(得分:0)

在UITableViewCell的“界面”构建器中,将属性“背景”设置为清晰(或其他),然后在“内容视图”上设置属性“背景”也清晰,问题应该消失。

答案 6 :(得分:0)

这是唯一对我有用的方法...(分隔符=通过情节提要无)

enter image description here