Text uilabel在包含大量文本内容时崩溃

Text uilabel在包含大量文本内容时崩溃,text,crash,uilabel,Text,Crash,Uilabel,当我设置一个包含大量内容的UILabel时,我遇到了一个问题,比如20000个单词。我用这个方法计算UILabel的大小: CGSize labelSize=[myLabel.text-sizeWithFont:myLabel.text.font constrainedToSize:CGSizeMake(400,CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap]; 它在显示标签时总是崩溃 我不知道为什么,但我用UITextView替换了它,问

当我设置一个包含大量内容的UILabel时,我遇到了一个问题,比如20000个单词。我用这个方法计算UILabel的大小:

CGSize labelSize=[myLabel.text-sizeWithFont:myLabel.text.font
constrainedToSize:CGSizeMake(400,CGFLOAT_MAX)
lineBreakMode:UILineBreakModeWordWrap];
它在显示标签时总是崩溃

我不知道为什么,但我用UITextView替换了它,问题就解决了

有人知道这其中的原因吗?谢谢大家!

float desiredHeight = 50.0;
NSString *yourText = @\"This is some\nmultiline text\nthat you want to fit in your frame.\";
CGRect frame = CGRectMake(30.0, 30.0, 250.0, desiredHeight);
int originalFontSize = 30; // let's say
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.font = [UIFont boldSystemFontOfSize:originalFontSize];

frame.size.height = 3000.0; // just make sure it's big enough
CGSize result = [yourText sizeWithFont:label.font constrainedToSize:frame.size lineBreakMode:UILineBreakModeWordWrap];
int newFontSize = (desiredHeight / result.height) * (float)originalFontSize;
label.font = [UIFont boldSystemFontOfSize:newFontSize];
label.numberOfLines = 0;

label.text = yourText;

[self.view addSubview:label];

试试这个并调整字体。同时调整行号。它可能会纠正你的问题,我希望这样做可能更好:

UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0.0, 0.0, self.view.frame.size.width, 0.0)];
[label setText: @"your text"];
[label sizeToFit];

CGRect labelFrame = label.frame;
labelFrame.size.height = label.contentSize.height;
label.frame            = labelFrame;

[self.view addSubview: label];
现在您可以添加文本,它的高度将由xcode计算