[iOS]关于计算文字所占范围大小的方法

2 篇文章 0 订阅

在Android开发中,若一个TextView里面的文本是不确定的,要实现TextView的大小会随着文本内容的不同而自动改变其大小这种效果,只需在布局文件中修改TextView的属性layout_width = "wrap_content"或者layout_height = "wrap_content",这样子TextView的大小就会随着文本内容的变化而变化。但是在iOS中并没有这个属性,所以在iOS开发中要实现这种效果,需要另一种方法,这种方法就是先计算好文本所占用的范围的大小,然后再将其设置为UILabelView的大小。在iOS中提供了一个方法,专门用来计算文本大小的,下面就来讲解这个方法的使用。

NSString * string = @”你好中国!”;
//首先创建一个字典,在里面定义了文本的文字样式
//在这里我定义了字体的样式为系统样式,并且字体大小为18
NSDictionary * dic = @{NSFontAttributeName : [UIFont systemFontOfSize:18]}
//现在最大能够容纳的文本范围
//如果将来计算的字体的范围超出了最大的范围,计算后返回的就是最大的范围
//如果将来计算的字体的范围小于最大的范围,计算后返回的就是真实文本真实的范围
CGSize maxSize = CGSizeMake(100,100);
//计算文本大小
CGSize textSize = [string boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;

由此textSize就是计算出来的文本的范围大小了


这种计算在很多常用的APP中也会使用到,比如说QQ、微信中聊天的气泡会根据聊天文字内容的增多而自动变大,就是先计算好了文字内容所占据的大小然后根据大小调整气泡的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值