我有一个很长的文字字符串(包括\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
新行被忽略。
答案 0 :(得分:85)
刚发现问题,我的numberOfLines
仍然是1.在将其设置为0后,它可以正常工作。
答案 1 :(得分:1)
可能会有用 - 因为现在有些行已被弃用
lBody.lineBreakMode = NSLineBreakByCharWrapping;
lBody.textAlignment = NSTextAlignmentLeft;
当然 - lBody.numberOfLines
应该大于1(默认值为1)