美文网首页
获取文本宽度计算逻辑

获取文本宽度计算逻辑

作者: 小刘_假装是个程序员 | 来源:发表于2017-10-26 15:46 被阅读0次
  • (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);

// 参数1: 自适应尺寸,提供一个宽度,去自适应高度
// 参数2:自适应设置 (以行为矩形区域自适应,以字体字形自适应)
// 参数3:文字属性,通常这里面需要知道是字体大小
// 参数4:绘制文本上下文,做底层排版时使用,填nil即可

pragma mark -获取文本宽度计算逻辑

#pragma mark -----计算文本宽度
-(CGFloat)getLabel:(NSString*)label withFontAttributeName:(UIFont*)font{

NSDictionary*attribute =@{NSFontAttributeName: font};

CGSize size = [label boundingRectWithSize:CGSizeMake(MAXFLOAT,0) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:attribute context:nil].size;

return size.width+20;

}

获取文本高度计算逻辑

- (CGSize)getLabel:(NSString*)label withFontAttributeName:(UIFont*)font{
    
    NSDictionary*attribute =@{NSFontAttributeName: font};
    CGSize size = [label boundingRectWithSize:CGSizeMake(kScreenWidth,500) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading  attributes:attribute context:nil].size;
    return size;
}


 //上面方法在计算文字高度的时候可能得到的是带小数的值,如果用来做视图尺寸的适应的话,需要使用更大一点的整数值.取整的方法使用ceil函数
return height + ceil(infoRect.size.height);

相关文章

网友评论

      本文标题:获取文本宽度计算逻辑

      本文链接:https://www.haomeiwen.com/subject/ydskpxtx.html