如何在swift ios中的两个自定义表视图单元格之间添加间距?

时间:2016-12-21 08:28:17

标签: ios uitableview swift3

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

    return 1
}


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

    return leadername.count

}  

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "leadCell") as! LeaderBoardTableViewCell
    cell.leaderNameLbl.text = leadername[indexPath.row]
    cell.areaLbl.text = areaName[indexPath.row]
    cell.approvalLabel.text = approvalrate[indexPath.row]
    cell.leaderImageView?.image = UIImage(named: leaderImage[indexPath.row])
    cell.backgroundColor = UIColor.white

    //cell.contentView.backgroundColor = transparentColor


            return cell

}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

    return 85
}

我检查了很多解决方案,但没有一个能为我工作。我已经改变了细胞高度,桌面高度等。但它对我不起作用。我们怎样才能做到这一点?请帮忙。

2 个答案:

答案 0 :(得分:1)

你可以通过两种方式实现这一目标。

1)您可以为每个单元格添加部分,并在部分中添加清晰颜色的部分视图,以便在两个单元格之间显示空白。

2)通过以适当的方式设计tableview单元格,可以在两个单元格之间创建空格。

通过章节页脚视图: -

func numberOfSections(in tableView: UITableView) -> Int {
    return 5 //yourCellArrayCount;
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {

let view = UIView(frame: CGRect (x:0, y: 0, width:10, height: 10))
    view.backgroundColor = UIColor.clear
    return view
} 

如果你想通过UI设计显示间距,那么使你的视图比你的单元容器视图小10像素,并为你的单元容器视图设置清晰的颜色。

查看此图片,您将获得更好的主意。 enter image description here 红色是您细胞的主要容器视图,使其颜色清晰。

你的表的最终输出是这样的 enter image description here

新更新

更改您的tableview方法并放置它。

func numberOfSections(in tableView: UITableView) -> Int {
    return 3
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 20
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let view = UIView(frame:CGRect (x: 0, y: 0, width: 320, height: 20) ) as UIView
    view.backgroundColor = UIColor.red
    return view
}

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

    return 1
}  

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "leadCell") as! LeaderBoardTableViewCell
cell.leaderNameLbl.text = leadername[indexPath.row]
cell.areaLbl.text = areaName[indexPath.row]
cell.approvalLabel.text = approvalrate[indexPath.row]
cell.leaderImageView?.image = UIImage(named: leaderImage[indexPath.row])
cell.backgroundColor = UIColor.white

//cell.contentView.backgroundColor = transparentColor


        return cell

}

检查并更改数据显示的逻辑。我测试了这个,它会在两个单元格之间显示红色空间。一旦完成,你可以改变红色以清除颜色。

答案 1 :(得分:0)

一种非官方的方法是在UITableViewCell的底部添加一个空白的空白UIView。

在“自定义表格视图”单元格的init()中添加以下代码可能会有所帮助:

var blankView = UIView() 
view.backgroundColor = .clear 
addSubview(blankView)
blankView..translatesAutoresizingMaskIntoConstraints = false 
blankView.widthAnchor.constraint(equalTo: widthAnchor).isActive = true 
blankView.heightAnchor.constraint(equalToConstant: 10).isActive = true