UITableView 分隔符出现在单元格中间
Posted
技术标签:
【中文标题】UITableView 分隔符出现在单元格中间【英文标题】:UITableView separator appear in middle of cell 【发布时间】: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 我也试过了,问题仍然存在 我在谷歌上搜索并尝试了所有可用的解决方案,但它不起作用,这就是为什么发布问题。如果您不知道解决方案,请不要无缘无故地投反对票。 【参考方案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。
【讨论】:
以上是关于UITableView 分隔符出现在单元格中间的主要内容,如果未能解决你的问题,请参考以下文章