如何将 2 个 detailTextLabel 添加到 Swift 中的单元格?

How to add 2 detailTextLabels to a cell in Swift?

我在 Xcode 中有一个 Table View Controller Swift 项目。

我为截止日期制作了一个 detailTextLabel。 我想添加注释,因为它会立即出现在 deadline(NSDate) 下作为第二个 detailTextLabel(NSString),类似于built-in Reminder app.

我尝试添加它,但每次我执行第二个 detailTextLabel 时,截止日期都会消失,只保留标题下的注释。 我还尝试将 2 个字幕合并到 detailTextLabel 中,但不能,因为 deadline 是 NSDatenote 是 String .

希望你能帮助我。 提前致谢!

下面是我的一些代码:

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("todoCell", forIndexPath: indexPath) // retrieve the prototype cell (subtitle style)
        let todoItem = todoItems[indexPath.row] as ToDoItem

        cell.textLabel?.text = todoItem.title as String!
        if (todoItem.isOverdue) { // the current time is later than the to-do item's deadline
            cell.detailTextLabel?.textColor = UIColor.redColor()
        } else {
            cell.detailTextLabel?.textColor = UIColor.blueColor() // we need to reset this because a cell with red subtitle may be returned by dequeueReusableCellWithIdentifier:indexPath:
        }

        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "'Due' MMM dd 'at' h:mm a" // example: "Due Jan 01 at 12:00 PM"
        cell.detailTextLabel?.text = dateFormatter.stringFromDate(todoItem.deadline)



       // When I try to add the detailTextLabel for note the deadline disappears 
       // cell.detailTextLabel?.text = todoItem.note as String!


    return cell
}

您不能更改基本单元格,因为它有自己的特定 UI。 因此,制作您自己的特定单元格 class 并将其分配给您,以便您可以加入任意数量的标签。你的代码会稍微改变一下:

let cell = tableView.dequeueReusableCellWithIdentifier("todoCell", forIndexPath: indexPath) as! YourCellClass

就是这样!希望对你有帮助。