如何在swift ios中的两个自定义表格视图单元格之间添加间距?
Posted
技术标签:
【中文标题】如何在swift ios中的两个自定义表格视图单元格之间添加间距?【英文标题】:How to add spacing in between two custom Table view cells in swift ios? 【发布时间】:2016-12-21 08:28:17 【问题描述】: 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
我检查了许多解决方案,但没有一个对我有用。我已经更改了单元格高度、表格视图高度等。但这对我不起作用。我们怎样才能做到这一点?请帮忙。
【问题讨论】:
在我看来,有两种方法可以解决您的问题: 1.每个 UITableViewCell 都显示在一个部分中,因此您可以处理每个部分的空间。 2.在UITableViewCell中,将contentView设置为更小,然后显示单元格之间的空间。 @nynohu 如何将内容视图设置得更小?你能在我的代码中告诉我怎么做吗? 如果您使用用户界面,您可以将所有内容添加到 contentView 的子视图中。并且你可以控制这个 subView 的 aize 为你想要的显示。 【参考方案1】:您可以通过两种方式实现。
1)您可以为每个单元格添加部分,并在部分中添加具有清晰颜色的截面视图,以便在两个单元格之间显示空白。
2) 通过以适当的方式设计表格视图单元格,您可以在两个单元格之间留出空格。
通过 Section footerView :-
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 设计显示间距,那么让你的视图比你的单元格容器视图小 10px,并为你的单元格容器视图设置清晰的颜色。
检查此图像您会得到更好的主意。 红色是您单元格的主要容器视图,使其清晰。
您的表格的最终输出是这样的
新更新
更改您的 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
检查此项并更改数据显示的逻辑。我已经对此进行了测试,它将在两个单元格之间显示红色空间。完成后,您可以将红色变为透明色。
【讨论】:
没有变化。它是一样的。我已更改 contentview 背景 clearcolor。 首先取一个单元格,例如 50 * 50 大小,现在将该单元格容器视图设置为清晰的颜色,然后将另一个视图设为大小为 (5,5,40,40) 的 tempView并将其放置在 containerView 现在您需要将所有内容放置在 tempView 中并根据您的 tempView 设置约束。在您的 heightForCell 方法中将高度返回为 50。如果您发现任何问题,请告诉我。 没有变化 能否请您发布您的代码或单元设计,以便我可以帮助您。 您不需要为行提供高度,所以删除它,您可以发布您的单元格设计和表格的实际输出吗?【参考方案2】:一个不太官方的方法是在 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
【讨论】:
以上是关于如何在swift ios中的两个自定义表格视图单元格之间添加间距?的主要内容,如果未能解决你的问题,请参考以下文章