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正在使用的確切字體和大小的地方,而且只有很少的限制條件。至少爲我工作,你呢? –