试图创建一个简单的tableView来显示数据,但是它不起作用。我检查了一下,甚至没有进入func tableView ..任何想法可能是什么问题?
import UIKit
class ViewController: UIViewController,UITableViewDelegate , UITableViewDataSource , UITextFieldDelegate {
let messageArray = ["First message ", "sec message " , "Third message"]
@IBOutlet weak var customTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
customTableView.delegate = self
customTableView.dataSource = self
customTableView.register(UINib(nibName: "customCell" , bundle: nil), forCellReuseIdentifier: "tableCell")
configureTableView()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell"
, for: indexPath)as! custom
cell.label0.text = messageArray[0]
cell.label1.text = messageArray[1]
cell.label2.text = messageArray[2]
cell.label3.text = "d"
customTableView.reloadData()
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func configureTableView() {
customTableView.rowHeight = UITableViewAutomaticDimension
customTableView.estimatedRowHeight = 120.0
}
}
答案 0 :(得分:0)
在设置委托和数据源之前注册单元格。
删除func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
中的customTableView.reloadData()
答案 1 :(得分:0)
尝试从cellForRowAt删除reload data
并实施
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
答案 2 :(得分:0)
我认为您有一个递归重载,因为您在cellForRowAt
中有此重载
customTableView.reloadData()
所以评论它并尝试
答案 3 :(得分:0)
只需从数据源方法cellForRowAt中删除以下行:customTableView.reloadData()。
您基本上是在要求tableview从datasource方法获取第一行的同时重新加载其所有数据。因此,这是一个无休止的循环。它永远不会显示任何数据。