【问题标题】:UITableView separator appear in middle of cellUITableView 分隔符出现在单元格中间
【发布时间】:2019-01-28 10:01:08
【问题描述】:

有时我的 tableviewcell 分隔符出现在单元格的中间。我搜索并找到了一种解决方案,我可以将 SeparatorStyle 设置为 none 并在单元格底部设置我的自定义分隔符,但我不想这样做。

我想知道为什么它有时只出现的根本原因。除了这个还有其他解决方案吗?我也找到了this,但没有帮助。附上截图:

编辑

我已经在网上搜索并尝试了所有可用的解决方案,但它不起作用。

也试过下面的代码:

upNextTableView.estimatedRowHeight = 44
upNextTableView.rowHeight = UITableView.automaticDimension

【问题讨论】:

  • 你能告诉我们你的相关代码吗?
  • 请截图!
  • 你试过 tableView.rowHeight = UITableVIew.automaticDimension 和 tableView.estimatedRowHeight = SomeValue 作为单元格高度吗?
  • @RatneshJain 我也试过了,问题仍然存在
  • 我在谷歌上搜索并尝试了所有可用的解决方案,但它不起作用,这就是为什么发布问题。如果您不知道解决方案,请不要无缘无故地投反对票。

标签: ios swift uitableview


【解决方案1】:

如果您使用自动布局并已实现 heightForRowAt 委托方法并且该方法返回的值与单元格的实际高度不匹配,则可能会发生这种情况。

【讨论】:

  • 我没有添加 heightForRowAt 方法
【解决方案2】:

斯威夫特

将这两行代码添加到表格视图控制器的 viewDidLoad() 方法中:

tableView.layoutMargins = UIEdgeInsets.zero
tableView.separatorInset = UIEdgeInsets.zero

现在寻找你的 cellForRowAt 方法并添加这个:

cell.layoutMargins = UIEdgeInsets.zero

【讨论】:

    【解决方案3】:

    分隔符不能出现在单元格中间,这是不可能的。

    但是您单元格中的内容有可能比单元格本身大,并且与下一个单元格重叠。

    确保您已正确设置所有约束。 如果单元格应该具有动态高度,请确保在 tableView 中指定它。 here is a useful link 或者只是将 clipToBounds = true, 设置为单元格...

    【讨论】:

    • 我所有的约束都正确。 clipToBounds 为真
    • 实际 UITableViewCell 的clipToBounds?为了调试尝试为实际单元格设置一些BG颜色,以查看内容是否被推送...
    • 是的,我尝试添加背景颜色,分隔符实际上是向上移动
    • 你能给我看一个包含所有视图层次结构的故事板中的 UITableViewCell 的屏幕截图吗?
    【解决方案4】:

    选择表格视图并转到属性检查器。

    见下文:

    接下来,转到 Separator Inset 并将其从 Automatic 更改为 Custom。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      相关资源
      最近更新 更多