如何在未在标签上明确设置preferredMaxLayoutWidth的情况下确定单元格的高度?

时间:2015-03-06 18:30:04

标签: ios uitableview swift uiview uikit

我有一个填充UITableViewCell的{​​{1}}子类。它是一个简单的子类,其中只有一个可变长度UITableView,我想根据此标签的长度调整单元格的大小。在我的故事板中,我设置了约束,将标签钉在距离单元格内容的边缘15pt处。

然而,在UILabel中,除非我为heightForRowAtIndexPath指定preferredMaxLayoutWidth值,否则它会一直给我不正确的高度。这似乎是不必要的,因为它可以根据我在标签上设置的约束来确定。直观地说,它是单元格的宽度 - 30(每边15pt),但不应该明确设置,特别是因为我可能会改变它,比如20,之后。

UILabel

如果没有在标签上明确设置override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! MyTableViewCell let str = strangs[indexPath.row] cell.myLabel.text = str // If the following line is not included it does NOT return the right height // cell.myLabel.preferredMaxLayoutWidth = tableView.bounds.width - 30 return cell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height + 1 } ,如何调用systemLayoutFittingSize:来计算单元格的高度?

0 个答案:

没有答案