2013-04-20 21 views
0

我在我的應用程序中使用下面的代碼來獲取UILabel的動態高度。UILabel動態高度不適用於iOS中的相同字符串

CGSize maximumLabelSize = CGSizeMake(231, FLT_MAX); 

    CGSize expectedLabelSize = [labelString 
          sizeWithFont:self.verbLabel.font 
          constrainedToSize:maximumLabelSize 
          lineBreakMode:self.verbLabel.lineBreakMode]; 

    //adjust the label the the new height. 
    CGRect newFrame = self.verbLabel.frame; 
    newFrame.size.height = expectedLabelSize.height; 
    self.verbLabel.frame = newFrame; 
    return newFrame; 

我的標籤串是如果你問了一個有爭議的公衆人物?他/她會提出什麼想法? 所以有時我可以顯示整個字符串,但有時候只是剪下一些文字。 如何解決此問題...請幫助我,讓我知道如果我做錯了什麼。

回答

2

將numberOfLines設置爲0以允許任意數量的行。

label.numberOfLines = 0; 
+0

是的,我已經設置了行數= 0和sizeToFit的數量,因爲它仍然有問題。 – 2013-04-20 10:22:48

+1

檢查你的標籤高度?..只需NSLog知道身高。你在哪裏設置'numberOfLines'? – Mani 2013-04-20 10:39:09

1

我建議你用下面的辦法,而不是sizeWithFont:事情:

CGSize maximumLabelSize = CGSizeMake(231, FLT_MAX); 
CGSize requiredSize = [self.verbLabel sizeThatFits: maximumLabelSize]; 
self.verbLabel.frame = CGRectMake(x, y, requiredSize.width, requiredSize.height); 

這是更清潔,可能會爲你工作的更好!

設置self.verbLabel.numberOfLines = 0;也可能是有益的。

Here's很好的解釋爲什麼使用sizeThatFits比使用sizeWithFont更好。

相關問題