有没有办法在UILabel中像UITextView中那样有多行文本或者我应该用第二行代替?


当前回答

如果你必须使用:

myLabel.numberOfLines = 0;

属性,也可以在代码中使用标准换行符(“\n”)强制换行。

其他回答

如果你必须使用:

myLabel.numberOfLines = 0;

属性,也可以在代码中使用标准换行符(“\n”)强制换行。

我找到的最好的解决方案(解决一个本来应该在框架中解决的令人沮丧的问题)与vaychick的类似。

只需在IB或代码中将行数设置为0即可

myLabel.numberOfLines = 0;

这将显示所需的行,但将重新定位标签,使其水平居中(以便1行和3行标签在水平位置对齐)。要解决这个问题,添加:

CGRect currentFrame = myLabel.frame;
CGSize max = CGSizeMake(myLabel.frame.size.width, 500);
CGSize expected = [myString sizeWithFont:myLabel.font constrainedToSize:max lineBreakMode:myLabel.lineBreakMode]; 
currentFrame.size.height = expected.height;
myLabel.frame = currentFrame;

使用它在UILabel中有多行文本:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

迅速:

textLabel.lineBreakMode = .byWordWrapping
textLabel.numberOfLines = 0
UILabel *helpLabel = [[UILabel alloc] init];
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:label];
helpLabel.attributedText = attrString;
// helpLabel.text = label;

helpLabel.textAlignment = NSTextAlignmentCenter;
helpLabel.lineBreakMode = NSLineBreakByWordWrapping;
helpLabel.numberOfLines = 0;

出于某些原因,它在iOS 6中不为我工作,不知道为什么。尝试了带和不带带属性的文本。任何建议。

使用故事板:选择标签设置行数为零......或者参考这个