在UITableView,cell.detailTextLabel.text不工作…为什么?
在tableView:cellForRowAtIndexPath:
我有以下几点:
cell.textLabel.text = @"label"; cell.detailTextLabel.text = @"detail";
textLabel
按预期显示,但detailTextLabel
完全不显示,尽pipe没有诊断。 我所期望的是,“细节”文本将出现在第二行的单元格中,在“普通”文本下方,可能具有较小的字体大小。
在这里的另一个post中询问同样的问题,用户“jbrennan”回答说tableview单元格样式必须是UITableViewCellStylePlain
以外的东西。 但是,似乎只有两种可能的样式, UITableViewCellStylePlain
和UITableViewCellStyleGrouped
。 我得到相同的结果(细节标签不出现)。
在文档中没有看到另一种单元格样式吗? 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