我尝试使用代码中的示例数据填充基本tableview。这是我的ViewController:
import UIKit
class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var postTableView: UITableView!
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "postcell", for: indexPath)
cell.textLabel?.text = "title"
cell.detailTextLabel?.text = "detail"
return cell
}
}
我确定名称"postcell"
是正确的,并且我已将tableView连接到ViewController作为数据源和委托。
当我在iOS模拟器中运行代码时,不会显示任何单元格。这就是我所看到的:
堆栈视图属性
我不想使用UITableViewController
如何显示表格单元格?
答案 0 :(得分:2)
如果“postcell”不是故事板中的原型单元格,则需要在viewDidLoad中注册它:
postTableView.register(UITableViewCell.self, forCellReuseIdentifier: "postcell")
如果是XIB表视图单元格,您可以按如下方式注册:
postTableView.register(UINib(nibName: "NibName", bundle: nil), forCellReuseIdentifier: "postcell")
如果您是从故事板中进行操作,请将原型单元格(或表格视图单元格)拖到表格视图上,然后在重用标识符中将其命名为“postcell”,如下所示:
确保您在viewDidLoad中也完成了以下操作:
postTableView.delegate = self
postTableView.dataSource = self
当然,您还需要:
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
答案 1 :(得分:1)
(_ tableView:UITableView,cellForRowAt indexPath:IndexPath)
让cell = tableView.dequeueReusableCell(withIdentifier:" postcell",for:indexPath) as postcell //添加此行
答案 2 :(得分:1)
感谢@MrSaturn在评论中指出它是堆栈视图的问题。在故事板中,我不得不将堆栈视图的对齐属性从中心更改为Fill。