我在Xcode中有一个TableViewController
Swift项目。
我制作了3个标签:titleLabel
,deadlineLabel
和noteLabel
。
当titleLabel
为空时,如何让deadlineLabel
和noteLabel
自行调整大小并更改其在单元格中的位置?
或者当titleLabel
和deadLineLabel
出现时,如何让noteLabel
自我调整大小并改变其位置?
提前谢谢!
以下是我的一些代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// let cell = tableView.dequeueReusableCellWithIdentifier("todoCell", forIndexPath: indexPath) // retrieve the prototype cell (subtitle style)
let cell = tableView.dequeueReusableCellWithIdentifier("todoCell", forIndexPath: indexPath) as! ToDoTableViewCell
let todoItem = todoItems[indexPath.row] as ToDoItem
cell.titleLabel.text = todoItem.title as String!
if (todoItem.isOverdue) { // the current time is later than the to-do item's deadline
cell.deadlineLabel.textColor = UIColor.redColor()
} else {
cell.deadlineLabel.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.deadlineLabel.text = dateFormatter.stringFromDate(todoItem.deadline)
cell.noteLabel.text = todoItem.note as String!
答案 0 :(得分:1)
你做不到。
或者学习它:您可以根据内容的大小自动重新设置单元格视图,但仅此一点对您没有多大帮助。
您必须相应地回复tableView(_:heightForRowAtIndexPath:)
的来电。
因此,覆盖UITableViewDelegate
协议的此方法,在那里进行大小计算并相应地返回其高度。