如何在单元格的textlabel下放置字幕标签?

时间:2016-10-23 18:37:16

标签: swift

我有一个tableView,我已经放了两个文本标签(当我完成时我需要3个)。 这两个标签都出现了,但我的问题是detailTextLabeltitlelabel内联,显然不应该这样。

我试图在行中添加动态大小调整,因为我认为单元格的高度限制了detailtext标签以适应titlelabel下面的一行。 但事实并非如此。

这就是我所拥有的:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var myCell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier")
    if myCell == nil {
       myCell = UITableViewCell(style: .value1, reuseIdentifier: nil)
       myCell = UITableViewCell(style: .value2, reuseIdentifier: nil)
    }
    let item: Parsexml = feedItems[indexPath.row] as! Parsexml
    myCell?.textLabel!.text = item.name! + " | " + item.address!
    myCell?.detailTextLabel?.text = "Category:" + item.city!
    myCell?.textLabel?.textColor = UIColor(white: 1, alpha: 1)
    myCell?.textLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
    myCell?.detailTextLabel?.font = UIFont(name: "HelveticaNeue", size: 8)
    myCell?.detailTextLabel?.textColor = UIColor(white: 1, alpha: 0.3)

    return myCell!
}

如何强制detailtextlabel坐在titlelabel下方?

1 个答案:

答案 0 :(得分:0)

首先,以下IF中的第一个赋值是无用的,因为它会被下一个赋值覆盖。

if myCell == nil {
    myCell = UITableViewCell(style: .value1, reuseIdentifier: nil)
    myCell = UITableViewCell(style: .value2, reuseIdentifier: nil)
}

顺便说一下,您需要使用.subtitle样式,而不是.value2

所以替换这个

if myCell == nil {
    myCell = UITableViewCell(style: .value1, reuseIdentifier: nil)
    myCell = UITableViewCell(style: .value2, reuseIdentifier: nil)
}

用这个

if myCell == nil {
    myCell = UITableViewCell(style: .subtitle, reuseIdentifier: nil)
}

删除可选

更好的是,你可以将myCell设为非可选值

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var myCell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier")
        ?? UITableViewCell(style: .subtitle, reuseIdentifier: nil)

    let item: Parsexml = feedItems[indexPath.row] as! Parsexml
    myCell.textLabel!.text = item.name! + " | " + item.address!
    myCell.detailTextLabel?.text = "Category:" + item.city!
    myCell.textLabel?.textColor = UIColor(white: 1, alpha: 1)
    myCell.textLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
    myCell.detailTextLabel?.font = UIFont(name: "HelveticaNeue", size: 8)
    myCell.detailTextLabel?.textColor = UIColor(white: 1, alpha: 0.3)

    return myCell
}