2013-04-20 20 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更好。

相关问题