【问题标题】:Xcode simulator table view is blackXcode 模拟器表视图为黑色
【发布时间】:2017-01-11 00:29:36
【问题描述】:

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

这是我的模拟器的图像:

我的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
}

这是我拥有的文件夹:

Main.storyboard:

print(myPinpoints) 添加到numberOfRowsInSection 时收到的错误消息

[(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)] [(实体:详细信息;id:0xd000000000080000;数据:)]

【问题讨论】:

  • 是否使用数据源?
  • @MarcoSantarossa 我正在使用 Core Data 数据源
  • 登录cellForRowAtIndexPath 并确认您的tableview 中的delegatedataSoruce 是否正常工作
  • @pedrouan 好的。感谢您的提醒。我现在看到了。您有什么方法可以建议我们解决这个问题吗?
  • 如果更改tableview 中的background color,是否会应用更改?

标签: ios swift uitableview ios-simulator


【解决方案1】:

你可能会错过一些东西:

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

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) 检查您的表格是否从 Storyboard 正确连接到您的 UIViewController =>

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

4) 确保您设置了 UIViewController 应符合的 protocols - 即委托和 dataSource 协议:

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

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

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

【讨论】:

  • 我不明白上面的步骤。其他两个已实现。我的 UITableView 是一个已连接的 IBOutlet。
  • 我添加了一张图片来显示我拥有的文件夹,这可能会有所帮助,因为我没有像往常那样多。
  • 我在执行任何步骤时都没有遇到任何问题。他们只是不工作。
  • 另外,第一步,我的tableView 有一个IBOutlet,但不是自定义类。
  • 是的,我确实按照教程进行操作,但我按照步骤进行了检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多