UILabel文本没有自动换行

时间:2010-04-28 13:37:31

标签: iphone objective-c xcode

我有一个很长的文字字符串(包括\n换行符),我将其输入UILabel进行显示。动态设置UILabel以为文本提供足够的空间。

我的代码如下所示:

myText = [NSString stringWithFormat:@"%@some text: %@ \n \n %@", myText, moreText1, moreText2];
NSLog(@"%@", myText);
myLabelSize = [vLabelText sizeWithFont:[UIFont fontWithName:@"Helvetica" size:(15.0)] constrainedToSize:cMaxLabelSize lineBreakMode:UILineBreakModeWordWrap];

UILabel *lBody = [[UILabel alloc] initWithFrame:CGRectMake(cFromLeft, vFromTop, vLabelSize.width, vLabelSize.height)];
lBody.font = [UIFont fontWithName:@"Helvetica" size:(15.0)];
lBody.lineBreakMode = UILineBreakModeWordWrap;
lBody.textAlignment =  UITextAlignmentLeft;
lBody.backgroundColor = [UIColor cyanColor];
[myScrollView addSubview:lBody];
lBody.text = vLabelText;

我的问题是文本没有换行,但在第一行后截断。 \n新行被忽略。

2 个答案:

答案 0 :(得分:85)

刚发现问题,我的numberOfLines仍然是1.在将其设置为0后,它可以正常工作。

答案 1 :(得分:1)

可能会有用 - 因为现在有些行已被弃用

lBody.lineBreakMode = NSLineBreakByCharWrapping;
lBody.textAlignment =  NSTextAlignmentLeft;

当然 - lBody.numberOfLines应该大于1(默认值为1)