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


当前回答

UILabel *labelName = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 30)];
[labelName sizeToFit];
labelName.numberOfLines = 0;
labelName.text = @"Your String...";
[self.view addSubview:labelName];

其他回答

你也可以通过Storyboard来实现:

选择视图控制器上的Label 在属性检查器中,增加Line选项的值(按Alt+Cmd+4显示属性检查器) 双击视图控制器中的Label并写入或粘贴文本 调整标签大小和/或增加字体大小,以便显示整个文本

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

Label.lineBreakMode = NSLineBreakByWordWrapping; 标签行数 = 0;

请不要忘记为标签设置左、右、上、下约束,否则它将无法工作。

myUILabel.numberOfLines = 0;
myUILabel.text = @"your long string here";
[myUILabel sizeToFit];

已经回答了,但你也可以在故事板中手动执行。在标签的属性检查器下,可以将换行符更改为换行(或字符换行)。

你应该试试这个:

-(CGFloat)dynamicLblHeight:(UILabel *)lbl
{
    CGFloat lblWidth = lbl.frame.size.width;
    CGRect lblTextSize = [lbl.text boundingRectWithSize:CGSizeMake(lblWidth, MAXFLOAT)
                                               options:NSStringDrawingUsesLineFragmentOrigin
                                            attributes:@{NSFontAttributeName:lbl.font}
                                               context:nil];
    return lblTextSize.size.height;
}