Swift / IOS - 使用tableView.rowHeight = UITableViewAutomaticDimension

时间:2015-05-01 02:27:48

标签: ios uitableview swift

我有一个表格,显示包含一些用户输入数据的自定义单元格。这些数据的长度各不相同,因此我正在实现tableview.rowHeight = UITableViewAutomaticDimension。

这很好用,但我希望标签的插图为10x10x10x10。当我覆盖自定义标签上的drawTextInRect时,将绘制插图并且工作正常。

问题是自动调整大小似乎没有考虑新的插图,因此截断标签文本,我无法弄清楚如何解决这个问题。

通过在绘制rect并返回单元格之前执行println(),我发现在绘制插图之前返回了单元格,这会让我相信我需要在某处更新单元格内容来修复它?

CustomNoteLabel

class CustomNoteLabel: UILabel {
    override func drawTextInRect(rect: CGRect) {

    var insets:UIEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10)

    println("Drawing insets")

    return super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets))

    }

}

TableViewInit()

    self.tableView = UITableView()
    self.tableView.frame = CGRectMake(0, 200, self.view.frame.width, self.view.frame.height - 200)
    self.tableView.dataSource = self
    self.tableView.delegate = self
    self.tableView.backgroundColor = UIColor.whiteColor()
    self.tableView.scrollEnabled = true
    self.tableView.estimatedRowHeight = 200.0
    self.tableView.rowHeight = UITableViewAutomaticDimension
    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
    self.tableView.registerNib(UINib(nibName: "NoteTableViewCell", bundle: nil), forCellReuseIdentifier: "cell")
    self.view.addSubview(tableView)

谢谢大家!

1 个答案:

答案 0 :(得分:0)

在玩了一下之后,我将标签Auto-Shrink设置为最小字体刻度0.75,这已经解决了这个问题。