2011-02-01 69 views
4

我有一個UITableView和一個Cell,我使用Interface Builder進行設計。 我在那裏有兩個標籤。 問題是,其中一個標籤是可以是500個單詞或10個單詞的文本。iPhone - >動態細胞高度

所以我需要一個動態的細胞高度。我該如何處理這個問題,否則我有空的空間或單元格高度不夠。

也許有人有一個想法如何做到這一點?

最好的問候。

回答

5

要知道你的文字的大小,你可以使用這個方法:

- (CGFloat)measureTextHeight:(NSString*)text fontName:(NSString*)fontName fontSize:(CGFloat)fontSize constrainedToSize:(CGSize)constrainedToSize { 
CGSize mTempSize = [text sizeWithFont:[UIFont fontWithName:fontName size:fontSize] constrainedToSize:constrainedToSize lineBreakMode:UILineBreakModeWordWrap]; 
return mTempSize.height; } 

然後你可以設置你的尺寸單元:

-(CGFloat)tableView:(UITableVIew*)tableView heightForRowAtIndexPath(NSIndexPath *)indexPath; 
2
-(CGFloat)tableView:(UITableVIew*) tableView heightForRowAtIndexPath(NSIndexPath *) indexPath 
{ 
    //here u can check the row number and ur labels and return ur custom height. 
} 
+0

是的,這是明確的,但如何我可以檢查標籤的這些高度嗎?因爲我使用40px在IB中定義它,所以這是一個修復大小。所以如果我要求標籤的高度,我總會得到40px。 – Tim 2011-02-01 16:47:23

+0

好問題...我沒有任何好主意......只有醜陋的一個,你可以計算字符和猜測根據你的字體會是它的高度:S – Ratinho 2011-02-01 16:55:07