【问题标题】:viewWithTag returns nil for UITableViewCellviewWithTag 为 UITableViewCell 返回 nil
【发布时间】:2014-09-25 01:35:15
【问题描述】:

我有一个UITableView,其原型为UITableViewCell,标识符为contact。在界面生成器中,我正确构建了单元格并将所有元素设置为正确的标签。当我尝试使用 cell.viewWithTag 在具有标签 101 的单元格中编辑 UILabel 时,该方法返回 nil。这似乎只是 iOS 8 上的问题。我正在使用故事板和 Swift。这是tableView:cellForRowAtIndexPath:中的代码

let contact = contacts[indexPath.row]
println("Contact: \(contact)")
cell = tableView.dequeueReusableCellWithIdentifier("contact") as UITableViewCell
(cell.contentView.viewWithTag(101) as UILabel).text = contact["name"]! as String

【问题讨论】:

  • 我为什么要投反对票?
  • 它在一个简单的项目中对我有用。尝试打印出您的 contact["name"] 以查看其中的内容。您的联系方式 println 有效吗?
  • 是的,打印正确
  • 您的contact["name"] 打印正常吗?
  • 是的,我也尝试打印单元格 viewWithTag 的描述而不将其转换为 UILabel,但它仍然是 nil

标签: uitableview swift ios8 viewwithtag


【解决方案1】:

尝试使用这个

let contact = contacts[indexPath.row]
println("Contact: \(contact)")
cell = tableView.dequeueReusableCellWithIdentifier("contact", forIndexPath: indexPath) as UITableViewCell
(cell.contentView.viewWithTag(101) as UILabel).text = contact["name"]! as String

【讨论】:

  • 我确实尝试过,但没有成功。你能解释一下我使用的方法和那个方法之间的区别吗?
  • 等等,它刚刚在另一个我遇到问题的单元格上工作。很奇怪吧?
  • 实际上,我使用的是 (cell.viewWithTag(3) as!UILabel).text = "some text.." 效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多