在UIViewController中使用tableView标签来更新标签

时间:2015-11-19 07:36:39

标签: swift uitableview uiview tags ios9.1

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

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

这里我在属性检查器中附加了我的标签详细信息的图像 enter image description here

请帮我解决问题。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您的手机内部不知道您的标签(500标签的标签)。您没有提供自定义单元格,因为这一行:

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

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

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

  1. 如果您想要预定义: 如果你想把文本放到单元格上使用(我看到这个在第一个地方被注释)。

    cell.textLabel?.text = object [“quantity”]

  2. 去定制

  3. 在单独的swift文件上扩展UITableViewCell。在这里进行绑定并同时处理故事板。将自定义类分配给您的单元格。另外,改变出队:

    let cell: MyCustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) as! MyCustomTableViewCell