UILabel自适应高度和自动换行

时间:2023-03-08 15:45:25

码:

  1. //初始化label
  2. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
  3. //设置自动行数与字符换行
  4. [label setNumberOfLines:0];
  5. label.lineBreakMode = UILineBreakModeWordWrap;
  6. // 测试字串
  7. NSString *s = @"这是一个测试!!!adsfsaf时发生发勿忘我勿忘我勿忘我勿忘我勿忘我阿阿阿阿阿阿阿阿阿阿阿阿阿啊00000000阿什顿。。。";
  8. UIFont *font = [UIFont fontWithName:@"Arial" size:12];
  9. //设置一个行高上限
  10. CGSize size = CGSizeMake(320,2000);
  11. //计算实际frame大小,并将label的frame变成实际大小
  12. CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
  13. [label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];

这样就可以实现自动行数和换行了。