0

我在 UIViewController 中添加了一个表格视图。然后我在表格视图中的自定义单元格中添加了一个标签。我试图通过使用标签来更新 tableview 内的标签。似乎它不起作用。

这是我的代码。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath)
    let object = lineItemsObject[indexPath.row]
    //cell.textLabel?.text = object["quantity"]

    print(object["description"]!)

    if let descriptionLabel = cell.viewWithTag(500) as? UILabel {
        descriptionLabel.text = object["description"]
    }
    else
    {
        print("fail")
    }

    return cell
}

当我总是调用该函数时,它不会读取标签并打印“失败”。我也为我的标签分配了正确的标签值。

在这里,我在属性检查器中附上了我的标签详细信息的图像 在此处输入图像描述

请帮我解决问题。

4

2 回答 2

2

正如@TheAppMentor 所说,代码看起来不错。确保您输入了正确的单元格标识符。然后确保将视图控制器连接到正确的类(这是我的常见错误)。还要确保此单元格中的其他内容没有相同的标签。您还可以打印所有子视图以检查里面的内容。

于 2015-11-19T08:26:18.260 回答
1

您的单元格不知道您的标签(带有 500 标签的那个)。由于这一行,您没有提供自定义单元格:

let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath)

这是一个预定义的单元格。在文档中,您可以拥有预定义的单元格或自定义单元格(通过子类化 UITableViewCell 获得):

“创建单元格时,您可以自己自定义它们或使用几种预定义样式中的一种。预定义单元格样式是最简单的选项。使用预定义样式,单元格提供位置和样式固定的标签和图像子视图。...设置单元格的文本和图像,使用 textLabel、detailTextLabel 和 imageView 属性。"

  1. 如果您想进行预定义: 如果您只想将文本放在单元格上使用(我看到这个被评论在第一位)。

    cell.textLabel?.text = 对象[“数量”]

  2. 去定制

在单独的 swift 文件上扩展 UITableViewCell。在这里做你的绑定并与你的故事板并行工作。将自定义类分配给您的单元格。另外,更改出队:

let cell: MyCustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) as! MyCustomTableViewCell
于 2015-11-19T08:29:59.573 回答