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);
  • 相关阅读:
    js获取当前时间日期
    js操作Cookie
    C#常用正则表达式
    jquery操作select、radio、checkbox表单元素
    js实现页面跳转的几种方式
    js获取页面宽高大小
    c++写一个类后编译发现class重定义
    vtkMultiThreader坑爹吗?
    vtkStandardNewMacro()出现错误的问题
    转:将CFormView嵌入到CDockablePane中
  • 原文地址:https://www.cnblogs.com/onetaste/p/Objective-c.html
Copyright © 2011-2022 走看看