0
我一直在研究这个问题一天以上,而且我可以诚实地说,我完全被这个问题解释为什么这个工作并不像我期望的那样工作。根据UILabel内容调整UITableViewCell高度的大小
我试图有一个UITableViewCell扩展,当选择到正确的大小基于其中的UILabel。我用下面的代码,以确定的UILabel需要的大小:
extension UILabel {
func requiredHeight() -> CGFloat{
let label:UILabel = UILabel(frame: CGRectMake(0, 0, self.frame.width, CGFloat.max))
label.text = self.text
label.numberOfLines = 0
label.font = self.font
label.sizeToFit()
print("Final Size - \(label.frame.height)")
return label.frame.height + 10
}
}
我的问题是,尽管这样的尺寸 - 当细胞是“heightForRowAtIndexPath”法内调整 - 它仍然是不正确的大小和字符串被截断,这可以在下面的图片中看到。
要注意的 - 我尽快收集细胞所需要的尺寸作为视图加载和文本已经填充到的UILabel。
requiredHeight = overviewLabel.requiredHeight()
if requiredHeight > overviewCell.frame.height {
expander.hidden = false
} else {
expander.hidden = true
}
有关如何解决这个问题的任何建议将不胜感激。
哦,哇,就这么简单。但是,请问为什么需要手动定义字体?我觉得它非常奇怪,我无法使用'label.font = self.font' –
它对你有用吗? –
我也曾经遇到同样的问题。可能是一些奇怪的问题,label.font = self.font不工作。我搜索了一些只能提供你的UILabel正在使用的确切字体和大小的地方,而且只有很少的限制条件。至少为我工作,你呢? –