zoukankan      html  css  js  c++  java
  • 自动获取UILabel高度

    在iOS 7之前,常用下面这个方法计算文本高度

    sizeWithFont:constrainedToSize:lineBreakMode:(Deprecated in iOS 7.0

    但是到了iOS 7 之后,这个方法就不建议使用了。提示用下面这个方法:

    boundingRectWithSize:options:attributes:context:(Available in iOS 7.0 and later.)

     1 -(CGSize)GetHeightDyanamic:(UILabel*)lbl
     2 {
     3     NSRange range = NSMakeRange(0, [lbl.text length]);
     4     CGSize constraint;
     5         constraint= CGSizeMake(287 ,MAXFLOAT);
     6     CGSize size;
     7     NSString *ver = [[UIDevice currentDevice] systemVersion];
     8     float ver_float = [ver floatValue];
     9     if (ver_float>6.0) {//版本
    10         NSDictionary *attributes = [lbl.attributedText attributesAtIndex:0 effectiveRange:&range];
    11         CGSize boundingBox = [lbl.text boundingRectWithSize:constraint options: NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
    12         
    13         size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));
    14     }
    15     else{
    16         
    17         
    18         size = [lbl.text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:14] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
    19     }
    20     return size;
    21 }

    //使用方法
    UILabel *_lblSelectedCountryNames;
    1         _lblSelectedCountryNames.text=[ArryData componentsJoinedByString:@"
    "];
    2         CGSize size=[self GetHeightDyanamic:_lblSelectedCountryNames];
    3         _lblSelectedCountryNames.frame=CGRectMake(16, 240, 287, size.height);
  • 相关阅读:
    linux 命令——48 watch (转)
    linux 命令——47 iostat (转)
    linux 命令——46 vmstat(转)
    linux 命令——45 free(转)
    linux 命令——44 top (转)
    linux 命令——43 killall(转)
    linux 命令——42 kill (转)
    linux 命令——41 ps(转)
    linux 命令——40 wc (转)
    Java for LeetCode 068 Text Justification
  • 原文地址:https://www.cnblogs.com/onetaste/p/Objective-c.html
Copyright © 2011-2022 走看看