有没有办法增加UITableViewCell之间的间距?

我已经创建了一个表,每个单元格只包含一个图像。图像被这样分配给单元格:

cell.imageView.image = [myImages objectAtIndex:indexPath.row];

但这使得图像放大并适合整个细胞,并且图像之间没有间隔。

或者让我们这样说,图像的高度是50,我想在图像之间增加20的间距。有什么办法可以做到吗?


当前回答

我遇到了麻烦,让它与背景颜色和附属视图一起在单元格中工作。最后不得不:

1)使用带有背景颜色的UIView设置单元格的背景视图属性。

let view = UIView()
view.backgroundColor = UIColor.white
self.backgroundView = view

2)在layoutSubviews中重新定位这个视图,添加间距的想法

override func layoutSubviews() {
    super.layoutSubviews()
    backgroundView?.frame = backgroundView?.frame.inset(by: UIEdgeInsets(top: 2, left: 0, bottom: 0, right: 0)) ?? CGRect.zero
}

其他回答

TableViewCell - - - >

   override open var frame: CGRect {
    get {
        return super.frame
    }
    set {
        var frame =  newValue
        frame.size.height -= 2
        super.frame = frame
    }
}

如果您还没有使用节页眉(或页脚),您可以使用它们为表单元格添加任意间距。与其创建一个有n行的section,不如创建一个有n个section,每个section都有一行的表。

实现tableView: hightforheaderinsection:方法来控制间距。

你可能还想实现tableView:viewForHeaderInSection:来控制空格的样子。

我遇到了麻烦,让它与背景颜色和附属视图一起在单元格中工作。最后不得不:

1)使用带有背景颜色的UIView设置单元格的背景视图属性。

let view = UIView()
view.backgroundColor = UIColor.white
self.backgroundView = view

2)在layoutSubviews中重新定位这个视图,添加间距的想法

override func layoutSubviews() {
    super.layoutSubviews()
    backgroundView?.frame = backgroundView?.frame.inset(by: UIEdgeInsets(top: 2, left: 0, bottom: 0, right: 0)) ?? CGRect.zero
}

将section中的行数更改为1 您更改了区段数而不是行数

 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        1
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 2
    }

这里是行与行之间的行距

 func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 50
    }

使用节而不是行 每个section应该返回一行 使用indexPath分配单元格数据。Section,而不是row 实现UITableView委托方法hightforheader并返回你想要的间距