有没有办法增加UITableViewCell之间的间距?
我已经创建了一个表,每个单元格只包含一个图像。图像被这样分配给单元格:
cell.imageView.image = [myImages objectAtIndex:indexPath.row];
但这使得图像放大并适合整个细胞,并且图像之间没有间隔。
或者让我们这样说,图像的高度是50,我想在图像之间增加20的间距。有什么办法可以做到吗?
有没有办法增加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并返回你想要的间距