Xcode模拟器表视图是黑色的

时间:2016-09-02 20:09:10

标签: ios swift uitableview ios-simulator

在模拟器中运行我的Xcode项目时,UITableView(不是UIViewController)中的UITableViewController为黑色。

这是我的模拟器的图像:

enter image description here

cellForRowAtIndexPath方法的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cellIdentifier = "Cell"
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MyPinpointsTableViewCell

    // Configure the cell...
    cell.titleLabel.text = myPinpoints[indexPath.row].title
    cell.locationLabel.text = myPinpoints[indexPath.row].location
    cell.dateLabel.text = myPinpoints[indexPath.row].date
    cell.pinpointImage.image = UIImage(data: myPinpoints[indexPath.row].image) 

    return cell
}

以下是我的文件夹:

enter image description here

Main.storyboard

enter image description here

我将print(myPinpoints)添加到numberOfRowsInSection

时收到的错误消息
  

[(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data :))   [(entity:Details; id:0xd000000000080000; data:)]

1 个答案:

答案 0 :(得分:1)

你可能会错过一些东西:

1)检查您的tableView是否在代码中设置了名为on的类。您可以在tableView的“属性”检查器中找到输入字段以键入类的名称。 enter image description here

2)检查是否实现了符合UITableViewDelegate和UITableViewDataSource协议的方法。

func numberOfSections(in tableView: UITableView) -> Int {
    // I see you only have 1 section now
    return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//you should return appropriate number
   return 3
}

3)检查您的表格是否从故事板正确连接到您的UIViewController =>

由于你的tableView在UIViewController中,检查你是否在控制器中为tableView设置了委托和数据源(CTRL从表格拖动到FileOwner - 故事板场景框架中的圆形黄色图标。)

enter image description here

4)请确保您设置UIViewController应符合的协议 - 即委托和数据源协议:

class MyPinpointsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { ... 

5)检查您的数据源,因为它可能没有以cellForRow()方法返回任何项目。它可以在任何TableView的委托方法中在print(dataSource)中进行简单测试。

6)检查可能的自动布局问题,因为重要的子视图可能超出了视图的可见部分。