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

来源:互联网 发布:日本化妆品 知乎 编辑:程序博客网 时间:2024/06/10 04:44

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

NSString * string = @”你好中国!”;//首先创建一个字典,在里面定义了文本的文字样式//在这里我定义了字体的样式为系统样式,并且字体大小为18NSDictionary * 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
原创粉丝点击