自适应宽高UILable

  1. 有时一个UILable的text内容是变化的,而且差异有很大,  
  2. 需求上要求UILabel的大小高宽能够自适应text的内容。代码例子:  
  3.   
  4. myLable=[[UILabel alloc] initWithFrame:CGRectMake(0, 23, 175, 33)];   
  5. [myLable setFont:[UIFont fontWithName:@"Helvetica" size:10.0]];   
  6. [myLable setNumberOfLines:0];   
  7. [myLable setBackgroundColor:[UIColor clearColor]];   
  8. [myAdView addSubview:myLable];  
  9.    
  10. UIFont *font = [UIFont fontWithName:@"Helvetica" size:10.0];   
  11. CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(175.0f, 2000.0f)   
  12.                     lineBreakMode:UILineBreakModeWordWrap];   
  13. CGRect rect=myLable.frame;   
  14. rect.size=size;   
  15. [myLable setFrame:rect];   
  16. [myLable setText:text];  
  17.   
  18. 核心的是  
  19. CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(175.0f, 2000.0f)   
  20.                     lineBreakMode:UILineBreakModeWordWrap];  
  21. 来预算text显示时宽高。  
  22. 其中font是显示的字体,constrainedToSize是最大可接受的字符串宽高(例子中是宽175,高2000)  
  23. lineBreakMode换行类型(UILineBreakModeWordWrap指的单词边界换行)  
posted @ 2013-09-22 22:45  alincexiaohao  阅读(147)  评论(0编辑  收藏  举报