【问题标题】:Use tags for tableView inside UIViewController to update Labels在 UIViewController 中使用 tableView 的标签来更新标签
【发布时间】:2015-11-19 07:36:39
【问题描述】:

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

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

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

请帮我解决问题。

【问题讨论】:

  • 您的代码看起来不错。我用一个测试项目检查了它,它工作正常。试试这个:删除表格视图附带的单元格。从对象浏览器中拖放一个新单元格,现在添加一个标签,设置其标签,然后设置单元格标识符并尝试。

标签: swift uitableview uiview tags ios9.1


【解决方案1】:

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

【讨论】:

  • 我验证了你提到的所有事情。但不起作用。以及我打印的子视图。共有三个 UITableViewCellContentViews。
  • 这里我为表格注册了类 UITableViewCell。我删除了它,现在它工作正常
【解决方案2】:

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

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

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

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

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

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

  2. 自定义

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

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

【讨论】:

  • 我修改了您提到的行并删除了为表格视图注册 UITableViewCell 类的代码行。现在它工作正常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
相关资源
最近更新 更多