UITableView - 出现在单元格之间的一条线

Posted

技术标签:

【中文标题】UITableView - 出现在单元格之间的一条线【英文标题】:UITableView - a line that appears between cells 【发布时间】:2015-09-14 12:56:09 【问题描述】:

我有一个 UITableView 存储拍摄的照片 - 每个单元格一张照片。在不久前的 Xcode 更新之后,表格现在在左侧的单元格之间出现一条细白线,如图 1 所示。由于某种原因,图像总是从表格的左侧缩进,并且仅在这部分下方白线现在出现了。

所以我真的有两个问题 - 我怎样才能摆脱白线和/或缩进?分隔符颜色通常与背景相同,但我尝试将 TableView 中的分隔符颜色更改为红色,看看会发生什么,我得到了您在图 2 中看到的内容。(图像​​缩略图无关紧要)。

我希望保留分隔符(因此照片之间有一条线),但要与它的颜色相匹配,以便与背景颜色相匹配。

【问题讨论】:

检查编辑,我想我已经回答了您的问题 你可以看看这个....***.com/questions/19499366/… 【参考方案1】:

通过设置tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 从您的tableview 中移除呼吸器。但根据您现有的代码,您使用了相同颜色的分隔符。我建议使用以下代码:

-(void)viewDidLayoutSubviews

    if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) 
        [self.tableView setSeparatorInset:UIEdgeInsetsZero];
    

    if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) 
        [self.tableView setLayoutMargins:UIEdgeInsetsZero];
    


-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) 
        [cell setSeparatorInset:UIEdgeInsetsZero];
    

    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) 
        [cell setLayoutMargins:UIEdgeInsetsZero];
    

【讨论】:

谢谢,但我需要一个分隔符......颜色正确。 你有没有把这段代码放在列表中,这只是用正确的颜色让你的单独的全宽。 atlist 检查代码 impliemtn 然后评论先生 我现在明白了 - 它有效。太感谢了。您可能想要编辑“呼吸器”:)【参考方案2】:

我认为这是 tableview 的分隔符。您需要关闭分隔符。这是一张图片如何做到这一点

请检查确认。

编辑

我更改了我的演示文件- 将单元格背景着色为绿色并关闭分隔符。正如你在这里看到的

这是我在运行模拟器后得到的 [注意 - 我实现了委托和数据源方法,我的 numberOfRows 的返回值为 5]

好像没有你想要的空间。

【讨论】:

这将删除该行,但留下一个空格。间距保持不变...【参考方案3】:

从 tableView 中删除任何分隔符:

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

然后,从您的 UITableViewCells 中删除 UIImageView 和视图边距之间的任何空格(从示例中设置约束)。

编辑

您可以使用 tableView 属性设置分隔符颜色:

tableView.separatorColor = [UIColor greenColor];

【讨论】:

谢谢,但我需要一个分隔符......颜色正确。 您应该在问题中更清楚地说明。现在我将更新答案。【参考方案4】:

首先你需要设置无分隔符

添加自定义分隔符,如 addSubview 首先获取单元格高度...

 UILabel *line=[[UILabel alloc]initWithFrame:CGRectMake(0, cellHeight-1, cell.frame.size.width, 1)];
            line.backgroundColor=[UIColor redColor];

 [cell addSubview:line];

【讨论】:

【参考方案5】:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 函数中,添加 cell.backgroundColor = 你想要的颜色。这将使空白区域与您的背景颜色相同。

【讨论】:

以上是关于UITableView - 出现在单元格之间的一条线的主要内容,如果未能解决你的问题,请参考以下文章

iOS UITableView 错误 - 每个其他 tableview 单元格上都有白线

uitableview 单元格中有一个横向分隔符

有没有办法从UITableView中删除分隔线?

UITableView 单元格行为不端,显示没有披露等等

UITableView - 单元格之间的线条

移除 UITableView 的边框,而不是分隔符