UITableViewCell detailTextLabel没有显示出来

时间:2015-12-05 03:59:56

标签: ios swift uitableview

在Swift中使用UITableView及其UITableViewCell(s)。我在显示detailTextLabel的{​​{1}}字段时出现问题。

我已经找到了这两个有用的帖子,但无法获得完全有效的解决方案: swift detailTextLabel not showing up How to Set UITableViewCellStyleSubtitle and dequeueReusableCell in Swift?

以下是我正在使用的代码,与我的问题相关:

UITableViewCell

当我尝试使用override func viewDidLoad() { super.viewDidLoad() …………. theTableView = UITableView(frame: tmpFrame) …………. theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier") theTableView.dataSource = self theTableView.delegate = self self.view.addSubview(theTableView) } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) cell.backgroundColor = UIColor.clearColor() cell.textLabel?.text = "THE-TEXT-LABEL" cell.detailTextLabel?.text = "KIJILO" // This does not show up. return cell } 的{​​{1}}字段时,它不显示。在网上搜索,我知道我必须为单元格使用正确的样式(detailTextLabel),但我不知道如何将该更改集成到我的代码中。我见过的示例基于子类UITableViewCell,我想我不需要将UITableViewCellStyle子类化为仅使用UITableViewCell字段。如果我错了,请告诉我。

我也尝试了上面提到的帖子中的一些内容,但没有任何方法可以解决。

4 个答案:

答案 0 :(得分:25)

您已注册UITableViewCell

theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")

这意味着当您致电

tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)

将使用UITableViewCellStyleDefault样式为您自动创建一个。

因为您需要自定义样式,所以您需要做一些事情:

删除

theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")

替换

var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)

以下

var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier")
if cell == nil {
    cell = UITableViewCell(style: .Value1, reuseIdentifier: "reuseIdentifier")
}

这里发生的事情是dequeueReusableCellWithIdentifier如果无法将单元格出列,则返回nil。然后,您可以使用指定的样式生成自己的单元格。

注意:在没有Xcode的情况下编写,我是Swift的新手,如果它没有编译就道歉。

答案 1 :(得分:1)

我发现仅检查<AndroidNativeLibrary Include="lib\x86\libwkhtmltox.so" /> 是否为 ngOnInit() { this.route.paramMap.subscribe(params => { console.log(params.get('orgstructure')); }); } 是不够的,我添加了此额外检查:

cell

答案 2 :(得分:1)

如果您使用的是 Storyboard

  1. 选择一个单元格
  2. 转到属性检查器
  3. 点击样式
  4. 选择Subtitle

答案 3 :(得分:0)

很好的答案,谢谢!我唯一要补充的是,如果您想要不同风格的详细信息视图(我正在寻找 .subtitle),您需要执行以下操作:

cell = UITableViewCell(style:.subtitle,reuseIdentifier:"reuseIdentifier")

其中:CellStyle:Int

    case `default` = 0

    case value1 = 1

    case value2 = 2

    case subtitle = 3