隐藏单个单元格的UITableViewCell分隔符

时间:2013-11-29 10:25:14

标签: ios objective-c uitableview

我的大多数单元格都需要一个UITableViewCell分隔符,但其中一些应该被隐藏。

设置方式为self.tableView.separatorStyle,适用于每个单元格。

严厉的解决方法是禁用它,然后手动将其作为UIView绘制到单元格上,但我不想去那里。

如何以其他方式删除单个单元格的分隔符?

3 个答案:

答案 0 :(得分:1)

您可以拥有自定义单元格并在此单元格中添加分隔符,这样您就可以管理单元格分隔符。或者您可以addSubView UIView作为您的单元格的分隔符,例如 iPatel' 答案,但请注意内存问题。

答案 1 :(得分:0)

对不需要ReUseIdentifier的单元格使用不同的separatorStyle。不要在此单元格中绘制任何内容。

答案 2 :(得分:0)

添加自定义视图作为分隔符需要做很多工作。除了添加属性,设置约束等之外,您还需要担心匹配默认分隔符的颜色和线宽(1.0 / view.window.screen.scale,因此它只有一个像素高,而不是一个点)。

使用默认分隔符视图更容易,并通过设置insets来隐藏它。例如,打开表的分隔符,然后在UITableViewCell子类中执行以下操作:

var showsSeperator: Bool = true {
    didSet {
        let leftInset: CGFloat
        if showsSeperator {
            leftInset = layoutMargins.left
        } else {
            leftInset = 1000  // Out of site.
        }
        separatorInset = UIEdgeInsets(top: 0, left: leftInset, bottom: 0, right: 0)
    }
}