UITableViewControllers中的UITableView是否有行分隔符?

时间:2016-03-17 23:58:26

标签: ios uitableview

我现在使用自定义UITableViewCell,使用自动布局“动态”高度。

然而,这些划分器有点不对。

这是一个UITableViewController。图像的宽度是模拟器中iPhone的全宽。

有人有线索吗?它是架子的UITableViewController,其中没有太多代码,主要是数据源/委托代码。

要清除我想要分隔符,但我希望它们在两边同样缩进。默认缩进很好,位于左侧,但不是右侧。

enter image description here

3 个答案:

答案 0 :(得分:1)

正如Fogmeister所提到的,您可以完全删除分隔符,只需在自定义表格单元格上添加分隔符视图,或者可以通过设置

来扩展分隔符。
cell.separatorInset = UIEdgeInsetsZero
cell.layoutMargins = UIEdgeInsetsZero
tableView.separatorInset = UIEdgeInsetsZero
tableView.layoutMargins = UIEdgeInsetsZero

请注意,这仅适用于iOS 8及更高版本。

答案 1 :(得分:0)

这些被称为分隔符。

您可以在Interface Builder中将它们作为tableView上的属性关闭。

选择tableview并为分隔符选择“None”属性。

答案 2 :(得分:0)

UITableViewCell分隔符的默认值是缩进的。但是,通过深入了解UITableViewCell的子视图,您可以通过更改其框架来移动和调整分隔符的大小。

在自定义UITableViewCell类中,覆盖layoutSubviews()方法,这样您就可以通过迭代单元格的子视图并检查UITableViewCellSeparator类型的子视图来获取单元格子视图时的分隔符对象。例如,如果要使分隔符跨越整个单元格的宽度,请将其框架的origin.x更改为0,并使分隔符成为单元格contentView的整个宽度。

override func layoutSubviews() {
    super.layoutSubviews()

    for subview in self.subviews {
        if subview.dynamicType == NSClassFromString("_UITableViewCellSeparatorView") {
            var newFrame = subview.frame
            newFrame.origin.x = 0
            newFrame.size.width = self.contentView.frame.width
            separator.frame = newFrame
        }
    }
}