在UITableView,cell.detailTextLabel.text不工作…为什么?

tableView:cellForRowAtIndexPath:我有以下几点:

 cell.textLabel.text = @"label"; cell.detailTextLabel.text = @"detail"; 

textLabel按预期显示,但detailTextLabel完全不显示,尽pipe没有诊断。 我所期望的是,“细节”文本将出现在第二行的单元格中,在“普通”文本下方,可能具有较小的字体大小。

在这里的另一个post中询问同样的问题,用户“jbrennan”回答说tableview单元格样式必须是UITableViewCellStylePlain以外的东西。 但是,似乎只有两种可能的样式, UITableViewCellStylePlainUITableViewCellStyleGrouped 。 我得到相同的结果(细节标签不出现)。

在文档中没有看到另一种单元格样式吗? UITableView是否在上次更新中更改,并且detailTextLabel不再可用? 我需要做些额外的事情才能显示出来吗? 有什么build议么?

我正在使用Xcode 3.2.5和build设iPhone 4.2模拟器。

您的初始化需要更改为:

 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
reuseIdentifier:CellIdentifier] autorelease];

我强调和粗体的部分,你需要改变。

您需要在分配单元格时将单元格types设置为“字幕”。

 if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:BasicCellIdentifier]; } 

当使用Xcode 4.2时,将“表视图单元格”样式设置为“故事板”中的“子标题”。 dequeueReusableCellWithIdentifier将返回一个实例化的单元格。

在故事板中将表格视图单元格样式设置为子标题

并编写这个代码来configuration你的单元格

 if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:BasicCellIdentifier] autorelease]; } 

在这里输入图像说明

 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 

Swift 3:

如果你使用“cellForRowAt indexPath”函数覆盖你的单元格:

 let tableContent = ["1", "2", "3", "4", "5"] let tableDetailContent = ["a", "b", "c", "d", ""] override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "yourCellIdentifier") cell.textLabel?.text = tableContent[indexPath.row] cell.detailTextLabel?.text = tableDetailContent[indexPath.row] return cell } 

在这里输入图像说明

上面的代码部分允许你设置你的detailTextLabel。你可以设置任何你想要的表格视图单元格风格(自定义,基本,右细节,左侧细节,副标题),这一行将覆盖它:

 style: UITableViewCellStyle.subtitle