簡體   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