我做桌子时的黑屏视图

时间:2017-03-10 20:56:13

标签: uikit tableview

我实现了一个简单的代码来自定义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.
    }   
}

2 个答案:

答案 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