如何根据我们的文本设置UILabel的高度

时间:2013-10-27 07:23:38

标签: objective-c uilabel cgrectmake

我有宽度为260的UILabel,其中我有长文本(可能大约1000个字符)。

我想根据内容设置UILabel的高度。有时我可以有100个字符,有时候我可以有1000个字符。

根据文字,我如何设置UILabel的高度?

注意:我正在以编程方式创建UILabel。

 UILabel myLabel = [[UILabel alloc] initWithFrame: CGRectMake (30,50,260, height)];

知道如何完成这项工作吗?

我尝试的一种方法如下。

我在考虑一行有40个字符。所以我正在做的是找到文本的长度并将其除以40.这将给出我所需的总行数。

但是当有新行时,这会失败。

这是正确的方法吗?

2 个答案:

答案 0 :(得分:10)

尝试使用:

myLabel.numberOfLines = 0;
[myLabel sizeToFit];

答案 1 :(得分:1)

NSString * mytext = @"My string";
myLabel.font = [UIFont fontWithName:@"fontName" size:15];
CGSize sz = [mytext sizeWithFont:myLabel.font];
float height = sz.height;
float totalHeight = height*myLabel.numberOfLines;

请注意,sizeWithFont是deprecated in iOS 7