0

我在滚动视图中有一个标签和一些其他项目。在 -viewDidLoad 中,我在标签中设置了文本,并且我想增加标签的高度以使所有文本都适合。所以,我计算文本的大小限制在标签的现有宽度里面,这是一个非常非常大的高度限制。

计算出的高度太小了,文本被包裹起来。我已经在 iOS4.3、iOS5.0 和 iOS6.0 iPad 模拟器上尝试过,但在所有这些模拟器上都无法正常工作。

任何想法?

self.labelTextDescription.text = self.purchase.textDescription;
self.labelTextDescription.backgroundColor = [UIColor redColor];

CGSize allowedSize = self.labelTextDescription.frame.size;
allowedSize.height = 100000;

CGSize textSize = [self.labelTextDescription.text sizeWithFont:self.labelTextDescription.font constrainedToSize:allowedSize lineBreakMode:UILineBreakModeWordWrap];
4

1 回答 1

-1

UILabel 的行数默认为 1。您可以自己计算,或者正如 David Rönnqvist 指出的那样,您也可以使用 0(更容易)。但是您的代码本身并没有错。

也许这个小代码片段会为您指明正确的方向。

UILabel *label = [[UILabel alloc] init];
label.text = @"Lorem ipsum dolor sit amet.";

CGSize allowedSize = CGSizeMake(100, MAXFLOAT);
CGSize textSize = [label.text sizeWithFont:label.font constrainedToSize:allowedSize lineBreakMode:UILineBreakModeWordWrap];

label.frame = CGRectMake(0, 0, textSize.width, textSize.height);
label.numberOfLines = 0; //EDIT: If you want to calculate it yourself use ceilf(textSize.height / label.font.lineHeight);
[self.view addSubview:label];
于 2012-10-25T08:07:09.880 回答