ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

iOS根据字符串长度设置UILabel的宽高

2019-05-20 19:51:36  阅读:274  来源: 互联网

标签:文字大小 iOS UILabel 适应 参数 context 字符串 attributes options


  • 在开发中有时候返回的字符串长度是不固定的,这时候要想全部展现出来,就需要根据返回的文字和文字大小去计算宽高.
  • NSString (NSExtendedStringDrawing)分类中提供了相关api:
/*
 参数1: 自适应尺寸,提供一个宽度,去自适应高度
 参数2:自适应设置 (以行为矩形区域自适应,以字体字形自适应)
 参数3:文字属性,通常这里面需要知道是字体大小
 参数4:绘制文本上下文,做底层排版时使用,填nil即可
*/
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attributes context:(nullable NSStringDrawingContext *)context
  • 实例:
 NSString * str = @"在开发中有时候返回的字符串长度是不固定的,这时候要想全部展现出来,就需要根据返回的文字和文字大小去计算宽高";
 CGRect contentRect = [str boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width - 40, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil];

示例中宽度固定为屏幕宽度减去40,高度默认最大,然后根据文字大小计算合适的Rect,及得到合适的高度.

标签:文字大小,iOS,UILabel,适应,参数,context,字符串,attributes,options
来源: https://blog.csdn.net/Bolted_snail/article/details/90380949

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有