Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / (iPhone/iPad开发)根据文本的字数自动调整UILabel的宽高

NSString * myText = [NSString stringWithString:@"some text"];
//获取到文本大大小
CGFloat constrainedSize = 265.0f; //其他大小也行
UIFont * myFont = [UIFont fontWithName:@"Arial" size:19]; // UILabel使用的字体
CGSize textSize = [myText sizeWithFont: myFont
                       constrainedToSize:CGSizeMake(constrainedSize, CGFLOAT_MAX)
                           lineBreakMode:UILineBreakModeWordWrap];
textSize.widthtextSize.height
即为UILable的宽和高,CGRect labelFrame = CGRectMake (0, 0, textSize.width, textSize.height);
UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];
即可用到工整一些做法:[cpp]
  1. //计算文本所占高度   
  2. //2个参数:宽度和文本内容   
  3. -(CGFloat)calculateTextHeight:(CGFloat)widthInput Content:(NSString *)strContent{  
  4.     CGSize constraint = CGSizeMake(widthInput, 20000.0f);  
  5.     CGSize size = [strContent sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];  
  6.     CGFloat height = MAX(size.height, 44.0f);  
  7.     return height;  
  8. }  
  9.   
  10. //计算 宽度   
  11. -(CGFloat)calculateTextWidth:(NSString *)strContent{  
  12. //    CGSize constraint = CGSizeMake(heightInput, heightInput);   
  13.     CGFloat constrainedSize = 26500.0f; //其他大小也行   
  14.     CGSize size = [strContent sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:CGSizeMake(constrainedSize, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];  
  15. //    CGFloat height = MAX(size.height, 44.0f);   
  16.     return size.width;  
  17. }