美文网首页iOS Developer
UILabel--自适应、根据文字计算高宽、NSMutableA

UILabel--自适应、根据文字计算高宽、NSMutableA

作者: Gravity_Zhan | 来源:发表于2016-08-31 16:46 被阅读827次

小白IOS进阶之路


UILabel根据文字计算frame宽高的三种方法:

1.系统自带方法(推荐)

/************************************************************

函数名称 : +(CGSize)labelSizeWithLabel:(UILabel *)label limitSize:(CGSize)size

函数描述 : 计算UILabel的高宽

输入参数 : label--当前控件、size--大小限制

返回参数 : CGSize--返回的size

备注信息 : 即使设置了NSAttributedString也一样适用,实际计算出的高度会超出此限制

**********************************************************/

+(CGSize)labelSizeWithLabel:(UILabel *)label limitSize:(CGSize)size

{

return [label sizeThatFits:size];

}


2.内容为NSAttributedString时使用

/************************************************************

函数名称 : -(CGSize)labelSizeWithAttributeStr:(NSAttributedString *)str limitSize:(CGSize)size

函数描述 : 计算UILabel的高宽

输入参数 : str--当前控件属性文字、size--大小限制

返回参数 : CGSize--返回的size

备注信息 : 注意在NSMutableParagraphStyle中不能设置其lineBreakMode属性,否则只能计算出其中一行的高度。

**********************************************************/

-(CGSize)labelSizeWithAttributeStr:(NSAttributedString *)str limitSize:(CGSize)size

{

CGSize lastSize= [str boundingRectWithSize:size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine) context:nil].size;

return lastSize;

}

3.计算NSString及其附加属性的高度

/************************************************************

函数名称 : -(CGSize)labelSizeWithStr:(NSString *)str font:(UIFont *)font limitSize:(CGSize)size

函数描述 : 计算UILabel的高宽

输入参数 : str--当前控件文字、font--字体、size--大小限制

返回参数 : CGSize--返回的size

备注信息 : 注意此处不能设置lineBreakMode,一旦设置,则只能算出一行的高度

**********************************************************/

-(CGSize)labelSizeWithStr:(NSString *)str font:(UIFont *)font limitSize:(CGSize)size

{

NSMutableParagraphStyle *paragraphStyle= [[NSMutableParagraphStyle alloc]init];

paragraphStyle.lineSpacing=12;

NSDictionary *attrDic= @{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraphStyle};

CGSize lastSize= [str boundingRectWithSize:size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingTruncatesLastVisibleLine) attributes:attrDic context:nil].size;

return lastSize;

}

^_^……复制粘贴的朋友请💗一下~

相关文章

  • UILabel--自适应、根据文字计算高宽、NSMutableA

    小白IOS进阶之路 UILabel根据文字计算frame宽高的三种方法: 1.系统自带方法(推荐)/*******...

  • iOS知识小杂记

    1、根据label的宽高,自适应文字的大小,让文字整个填充label label.numberOfLines = ...

  • iOS xib根据文字内容自适应改变父视图宽高度

    第一三步xib根据文字内容自适应改变父视图 宽度 第二三步xib根据文字内容自适应改变父视图 宽高度 第一步:...

  • 图片自适应

    1.平均分为3份,图片宽 根据 屏幕宽 自适应,图片宽高 根据 图片宽 的大小自适应,始终不会扭曲 图片...

  • iOS文字的自适应

    给定label的宽高,根据文字的长短来自适应文字的大小,让所有的文字在这个宽高的范围内可完全显示: 对lable进...

  • 自适应内部元素

    需求:figure元素能和它包含的图片一样宽,即内容根据图片自适应。 未自适应的效果: 文字比图片要宽得多 想要的...

  • iOS Masonry布局(二) - UILabel

    UILabel自适应宽高 UILabel使用Masonry布局时如果不添加宽高约束,视图会根据内容自适应宽高。 示...

  • 在UILabel中加图片

    // 最后的文字 NSMutableAttributedString * attri = [[NSMutableA...

  • 十分钟学会cell自适应高度(Swift)

    cell自适应高度 cell高度根据label高度变化而变化(代码见下面) 重点讲解 自动计算高度及设置预估行高 ...

  • css问题集合

    1.文字多行缩略的宽自适应问题注意,不然自动宽width:auto无效,结果为100%宽image.png 2.垂...

网友评论

    本文标题:UILabel--自适应、根据文字计算高宽、NSMutableA

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