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


当前回答

在下面的代码或故事板本身中设置

Label.lineBreakMode = NSLineBreakByWordWrapping; 标签行数 = 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中不为我工作,不知道为什么。尝试了带和不带带属性的文本。任何建议。

在这个函数中,传递你想在label中赋值的字符串,并传递字体大小来代替self。activityFont和传递标签宽度的地方235,现在你得到标签高度根据你的字符串。 它会工作得很好。

-(float)calculateLabelStringHeight:(NSString *)answer
{
    CGRect textRect = [answer boundingRectWithSize: CGSizeMake(235, 10000000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:self.activityFont} context:nil];
    return textRect.size.height;

}

在IB中,将行数设置为0(允许无限行)

当使用IB在文本框中输入时,使用“alt-return”插入一个返回值并转到下一行(或者您可以复制已经被行隔开的文本)。

斯威夫特4:

label.lineBreakMode = .byWordWrapping

label.numberOfLines = 0

label.translatesAutoresizingMaskIntoConstraints = false

label.preferredMaxLayoutWidth = superview.bounds.size.width - 10 
myUILabel.numberOfLines = 0;
myUILabel.text = @"your long string here";
[myUILabel sizeToFit];