繁体   English   中英

NSString sizeWithFont没有返回正确的高度

[英]NSString sizeWithFont not returning the correct height

我在滚动视图中有一个标签和其他一些项目。 在-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];

UILabel的行数默认为1。您可以自己计算,也可以像DavidRö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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM