我正在UITableView
中实现UIViewController
。我已经能够使用自定义UITableViewCell
来显示文本,但是我找不到在单元格之间放置间距的方法。
我曾尝试实现tableView(_:heightForHeaderInSection:)
,但似乎没有调用它,因为我试图放入打印语句以查看其是否运行。
答案 0 :(得分:1)
我遇到的问题是 heightForHeaderInSection 无法正常工作,但是在我设置viewForHeaderInSection之后,高度可以正常工作。确保已在部分中设置了视图标题。
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView.init(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 44))
view.backgroundColor = .white
return view
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 44
}
答案 1 :(得分:0)
将此添加到您的viewDidLoad()
中:
let HEADER_HEIGHT = 100
tableView.tableHeaderView?.frame.size = CGSize(width: tableView.frame.width, height: CGFloat(HEADER_HEIGHT))
另一种方式-
public override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 100
}
答案 2 :(得分:0)
请确保将tableview的委托设置为您的viewcontroller(并确保您的viewcontroller符合UITableViewDelegate
协议):
class CustomTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView! {
didSet {
tableView.dataSource = self
tableView.delegate = self
}
}
func numberOfSections(in tableView: UITableView) -> Int {
return 5
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 20
}
}
结果: