UITableView:仅在指定部分启用分隔符

Posted

技术标签:

【中文标题】UITableView:仅在指定部分启用分隔符【英文标题】:UITableView: enable separator only in a specified section 【发布时间】:2011-10-25 17:25:06 【问题描述】:

如何仅在指定部分启用分隔符?

【问题讨论】:

【参考方案1】:

好吧,如果您使用的是自定义单元格,您可以在 tableview 上关闭 separatorStyle,并在自定义单元格的 contentView 底部添加一个高度为 1 且背景为浅灰色的额外视图,或者将其添加到您的 Nib /Storyboard 的原型单元或以编程方式将其添加到单元初始化代码中。

这比在另一个答案中建议的在第一个表前面添加另一个表要干净得多。

【讨论】:

【参考方案2】:

有点小技巧,可能不是最干净的解决方案,但您可以设置 UITableViewCell.separatorInset 值以使分隔符“不可见”。

例如,您可以在自定义 UITableViewCell 类中执行类似的操作(可能附加到笔尖):

override func awakeFromNib() 
    super.awakeFromNib()
    // Initialization code
    self.separatorInset = UIEdgeInsetsMake(0, 0, 0, UIScreen.main.bounds.width)


所以这会将插图的左右坐标设置为相同的值,实际上创建了一个 0 长度的插图。如果您的表有多种行类型,则可以在特定行中使用上述内容使分隔符不可见。对于要显示分隔符的行,只需使用表格视图的分隔符设置即可。

【讨论】:

这是迄今为止最好的解决方案。谢谢!【参考方案3】:
 separatorStyle

是表格的一个属性,因此您不能在同一个表格的不同部分有不同的分隔符。因此,您将不得不使用多个表格并按照您想要的方式配置每个表格的分隔符样式。

您可以将第二张桌子放在另一张桌子的前面,而不在隐藏的桌子部分放置任何东西。

或者,您可以将第二个表放在第一个表的一个部分中,并使该部分具有包含第二个表的单行。

【讨论】:

没有本地方式 - 只有仿真。是的,我知道这是一张桌子的财产。 或者我可以添加一个带有一些预定义颜色的假单元格作为背景。 @Artem 在这里写的说明:***.com/questions/4804632/uitableview-separator-line【参考方案4】:

在您需要分隔符的任何部分添加tableView.separatorStyle = .singleLine更改tableView.separatorStyle = .none

【讨论】:

以上是关于UITableView:仅在指定部分启用分隔符的主要内容,如果未能解决你的问题,请参考以下文章

如何在静态 UITableView 中仅删除一个部分的分隔符?

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

仅在编辑模式下的 UITableView 部分标题

部分的 UITableView 标题仅在向下滚动时出现

指定表格页脚时,最后一个单元格上缺少 uitableview 分隔符

指定表格页脚时,最后一个单元格上的uitableview分隔符丢失