Label高度自适应

  1. 有时一个UILable的text内容是变化的,而且差异有很大,  

  2. 需求上要求UILabel的大小高宽能够自适应text的内容。代码例子:   

  3. myLable=[[UILabel alloc] initWithFrame:CGRectMake(0, 23, 175, 33)];   

  4. [myLable setFont:[UIFont fontWithName:@"Helvetica" size:10.0]];   

  5. [myLable setNumberOfLines:0];   

  6. [myLable setBackgroundColor:[UIColor clearColor]];   

  7. [myAdView addSubview:myLable];   

  8. UIFont *font = [UIFont fontWithName:@"Helvetica" size:10.0];   

  9. CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(175.0f, 2000.0f)   

  10.                                          lineBreakMode:UILineBreakModeWordWrap];   

  11. CGRect rect=myLable.frame;   

  12. rect.size=size;   

  13. [myLable setFrame:rect];   

  14. [myLable setText:text];  

  15.   

  16. 核心的是  

  17. CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(175.0f, 2000.0f)   

  18.                     lineBreakMode:UILineBreakModeWordWrap];  

  19. 来预算text显示时宽高。  

  20. 其中font是显示的字体,constrainedToSize是最大可接受的字符串宽高(例子中是宽175,高2000)  

  21. lineBreakMode换行类型(UILineBreakModeWordWrap指的单词边界换行)  


你可能感兴趣的:(而且)