2011-11-02 81 views
2

我創建的CustomCell包含UILabel,默認情況下,UILabel將啓用兩行文本,但有時會出現文本需要三行。如何在創建CustomCell之前計算文本大小

的字體類型和大小是固定的,不能改變,我試圖找出創建UITableView/CustomCell使得細胞高度可以被正確地設置之前計算NSString/UILabel的長度的方法。將要顯示的文本將由許多不同的詞組成,例如'你的名字是XXXXX XXXXX,你的生日是......',而XXXXXXX是可變的元素。

希望這是有道理的,我考慮過的一個想法是創建一個方法,該方法包含從未顯示的UILabel,並填充所需的文本,然後檢查是否使用2或3行,但不知道如何執行這個。

是否有一個更優雅的方法來實現這一點?

回答

1

我相信NSString s sizeWithFont: constrainedToSize: lineBreakMode:是您正在查找的方法。這將返回一個CGSize,您可以通過該高度來確定單元格的高度(並且顯然將標籤的框架設置爲正確的大小)。

注意:你應該通過一個CGSize參數到constrainedToSize:部分比你打算什麼更大的高度是但標籤的正確的最大寬度

1

有幾個UIKit的功能與尺寸計算具有各種換行模式和字體的字符串。詳情請參閱this doc

特別是sizeWithFont:constrainedToSize:lineBreakMode:可能對此有用。

相關問題