当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

iOS UIlabel高度自适应总结。

作者:小梦 来源: 网络 时间: 2024-06-01 阅读:
-(void)initUserInterface{    UILabel *label = [[UILabel alloc]init];    label.numberOfLines = 0; // 需要把显示行数设置成无限制    label.font = [UIFont systemFontOfSize:15];    label.textAlignment = NSTextAlignmentCenter;    label.text = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";    CGSize size =  [self sizeWithString:label.text font:label.font];    label.bounds = CGRectMake(0, 0, size.width, size.height);    label.center = self.view.center;    [self.view addSubview:label];     }

// 定义成方法方便多个label调用 增加代码的复用性

-(CGSize)sizeWithString:(NSString *)string font:(UIFont *)font{    CGRect rect = [string boundingRectWithSize:CGSizeMake(320, 8000)//限制最大的宽度和高度           options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading  |NSStringDrawingUsesLineFragmentOrigin//采用换行模式        attributes:@{NSFontAttributeName: font}//传人的字体字典           context:nil];         return rect.size;}

方法二:

 CGRect contentRect = [NSString heightForString:badgeValue Size:contentSize Font:kValueFont];//获取某固定文本的显示高度+(CGRect)heightForString:(NSString*)str Size:(CGSize)size Font:(UIFont*)font{    return [NSString heightForString:str Size:size Font:font Lines:0];}+(CGRect)heightForString:(NSString*)str Size:(CGSize)size Font:(UIFont*)font Lines:(NSInteger)lines{    if (StringIsNullOrEmpty(str)) {        return CGRectMake(0, 0, 0, 0);    }    static UILabel *lbtext;    if (lbtext==nil) {        lbtext    = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];    }else{        lbtext.frame=CGRectMake(0, 0, size.width, size.height);    }    lbtext.font=font;    lbtext.text=str;    lbtext.numberOfLines=lines;    CGRect rect= [lbtext textRectForBounds:lbtext.frame limitedToNumberOfLines:lines];    if(rect.size.height<0)        rect.size.height=0;    if (rect.size.width<0) {        rect.size.width=0;    }    return rect;}

/**

  • @return 根据字符串的的长度来计算UITextView的高度
    */

    +(float)heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width
    {

       float height = [[NSString stringWithFormat:@"%@\n",value] boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:fontSize],NSFontAttributeName, nil] context:nil].size.height;      return height;

    }

热点阅读

网友最爱