设置具有正确细节的自定义单元格样式,但它不显示detailTextLabel?

时间:2016-02-29 13:29:55

标签: xcode swift detailtextlabel uitableview

我正在使用Xcode7.2.1 iOS9.2 SDK。

set the custom cell style with Right detail

  1. 注册单元格笔尖:
  2. 代码:

    self.TbuserList.registerNib(UINib.init(nibName: "UserCell", bundle: NSBundle.mainBundle()), forCellReuseIdentifier: "idUserList")
    
    1. 设置单元格detailTextLabel文本:
    2. 代码:

      func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
          let cell = tableView.dequeueReusableCellWithIdentifier("idUserList",forIndexPath: indexPath ) as! UserCell
          //print(self.users)
          cell.textLabel?.text = self.users[indexPath.row]["nickname"] as? String
          cell.detailTextLabel?.text = (users[indexPath.row]["isConnected"] as! Bool) ? "Online" : "Offline"
          cell.detailTextLabel?.textColor = (users[indexPath.row]["isConnected"] as! Bool) ? UIColor.greenColor() : UIColor.redColor()
          return cell
      }
      

      enter image description here

      注意:当我将单元格样式从“右侧细节”更改为“副标题”或“左侧细节”时,可以。

2 个答案:

答案 0 :(得分:1)

由于您使用的是从xib文件创建的自定义单元格,我建议避免尝试使用默认单元格元素(textLabel和detailTextLabel),而只需添加创建所需单元格所需的视图。您可以向标准单元格添加其他视图,但确保您的视图使用现有标准单元格视图可能会稍微复杂一些。如果标准单元格类型适合您的需要,您可以使用tableView而不是自定义xib文件注册UITableViewCell类。请查看Apple docs

中的自定义单元格部分

答案 1 :(得分:0)

我不使用Storyboard,所以不确定是否对您有帮助,但是我在自定义单元格中的意思是:

class CustomTableViewCell: UITableViewCell {

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        //MARK: Setting ".value1" in super.init(style: .value1, ...) is the key to do this
        super.init(style: .value1, reuseIdentifier: reuseIdentifier)

        textLabel?.text = "Main Label"

        detailTextLabel?.text = "Detail Label"
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

只要您添加新的Swift文件并为自定义单元格注册相同的名称,它就可以正常工作。