我实现了一个简单的代码来自定义TableView,但结果是模拟器上的黑屏。
你觉得这里有什么问题? 我怎样才能更清楚地解释一下?
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
let animals = ["Lion", "Elephant", "Monkey", "Panda"]
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return animals.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell" , for: indexPath) as! ViewControllerTableViewCell
cell.myImage.image = UIImage(named: (animals[indexPath.row] + ".jpg"))
cell.myLabel.text = animals[indexPath.row]
return (cell)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:1)
您需要将ViewController变为tableView的委托和dataSource。
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.tableView.dataSource = self
}
答案 1 :(得分:0)
我没有看到你在任何地方宣布你的tableview
。
视图控制器是UIViewController
的子类,而不是UITableViewController
- 是否正确?
创建并实例化tableview
,如下所示:
class ViewController: UIViewController //...
var tableview: UITableView?
override func viewDidLoad() {
self.tableview = UITableView()
self.tableview.delegate = self
self.tableview.datasource = self