如何将 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 是 NSDate 而 note 是 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
就是这样!希望对你有帮助。
我在 Xcode 中有一个 Table View Controller Swift 项目。
我为截止日期制作了一个 detailTextLabel。 我想添加注释,因为它会立即出现在 deadline(NSDate) 下作为第二个 detailTextLabel(NSString),类似于built-in Reminder app.
我尝试添加它,但每次我执行第二个 detailTextLabel 时,截止日期都会消失,只保留标题下的注释。 我还尝试将 2 个字幕合并到 detailTextLabel 中,但不能,因为 deadline 是 NSDate 而 note 是 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
就是这样!希望对你有帮助。