【问题标题】:UITableView - a line that appears between cellsUITableView - 出现在单元格之间的一条线
【发布时间】:2023-03-17 03:58:01
【问题描述】:

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

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

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

【问题讨论】:

标签: ios objective-c uitableview


【解决方案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 = {你想要的颜色}。这将使空白区域与您的背景颜色相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2012-05-15
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      相关资源
      最近更新 更多