第一种:

UILabel *labl = [[UILabel alloc]init];

labl.backgroundColor = [UIColor redColor];

labl.numberOfLines = 0;

labl.text = @"我要去何方,不知道未来该去向何方技术开发了我觉得觉得分开了房间诶哦 将哦鲋破紧凑积分破诶佛配叫婆婆佛教看到积分破鸡婆上微积分感觉就和 v 恶评用途容易投入IE哦排球排球打底衫;刚开始挂牌品味品味咖啡;了多少贫困的佛法快乐;的;朗诵评分坡水库;几个;饿哦佛山飞机送顾客评价婆婆哦精品佛陪外婆饿哦皮绒皮捅破哦开始破送配送商品时破哦我顽皮我我哦破我怕我陪婆婆破饿哦饿哦让破 i 人";

CGSize size = [labl.text boundingRectWithSize:CGSizeMake(300,MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:labl.font} context:nil].size;

labl.frame = CGRectMake(0, 64,size.width,size.height);

[self.view addSubview:labl];

使用- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary*)attributes context:(nullable NSStringDrawingContext *)context 这个方法参数:

size:宽高限制,用于计算文本绘制时占据的矩形块。

options: 文本绘制时的附加选项

NSStringDrawingUsesLineFragmentOrigin//整个文本将以每行组成的矩形为单位计算整个文本的尺寸

NSStringDrawingUsesFontLeading//以字体间的行距

NSStringDrawingUsesDeviceMetrics //计算文本尺寸时将以每个字或字形为单位来计算。

NSStringDrawingTruncatesLastVisibleLine//计算文本尺寸时将以每个字或字形为单位来计算。

可以组合试一下达到自己想要的效果

attributes:对字体、颜色、行距、字间隔等等一些设置,使用字典来做一些属性设置

context:上下文,该参数可为 nil 。

第二种:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 0)];

label.backgroundColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1];

label.text = @"我会自己去适应";

label.numberOfLines = 0;

[label sizeToFit];

[self.view addSubview:label];

使用 [label sizeToFit];让label自己去适应

或者使用sizeThatFits:方法自己定义宽高

CGSize size = [label sizeThatFits:CGSizeMake(100, MAXFLOAT)];

label.frame = CGRectMake(100, 100, size.width, size.height);

第三种:

UILabel *label = [[UILabel alloc] init];

label.backgroundColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1];

label.text = @"我会自己去适应宽度的";

label.font = [UIFont systemFontOfSize:50];

CGSize size = [label.text sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:50]}];

//ceilf()向上取整函数, 只要大于1就取整数2. floor()向下取整函数, 只要小于2就取整数1.

CGSize adaptionSize = CGSizeMake(ceilf(size.width), ceilf(size.height));

label.frame = CGRectMake(100, 100, adaptionSize.width, adaptionSize.height);

[self.view addSubview:label];

这种方法只能适应一行的宽高,高度也是根据字体的大小来变化的

49.UILable宽度高度自适应的更多相关文章

  1. html中图片自适应浏览器和屏幕,宽度高度自适应

    1.(宽度自适应):在网页代码的头部,加入一行viewport元标签. <meta name="viewport" content="width=device-wi ...

  2. 【亲测可行,图片宽度高度自适应】c# Graphics MeasureString精确测量字体宽度

    , , ) { int count = number.Length; //需要配置的字段 //Font f = new Font("Microsoft Sans Serif", f ...

  3. easyui-datagrid配置宽度高度自适应

    在style属性中,去除之前添加的width和height属性(如果有的话),然后添加"fit:false"即可.

  4. css实现div中图片高度自适应并与父级div宽度一致

    需求:1.父级div不设置高度 2.图片高度自适应,并且显示为正方形: 以前遇到列表中图片高度必须和父级宽度相同,并且需要为正方形的时候,最开始的方法是定死图片高度,这样会导致不同分辨率下图片会压缩, ...

  5. iOS UILable高度自适应

    适用于iOS6以后 NSString *tip = @"UILable高度自适应,UILable高度自适应,UILable高度自适应"; UILabel label_2 = [[U ...

  6. 不使用border-radius,实现一个可复用的高度和宽度都自适应的圆角矩形

    现在css3支持圆角矩形,但是为了兼容性问题,虽然比较麻烦,但还是有必要了解一下以下方法. 在一个div内,包含8个div,控制这个8个div的height.margin以及border属性值,以达到 ...

  7. 使用 padding-bottom 设置高度基于宽度的自适应

    我们在做移动端列表,通常会做到图文列表,列表是自适应的.当列表中有图片,图片的宽度是随着列表宽的变化而变化,我们为了在图片宽度变化的时候做到图片的不变形,所有采用以下办法. 本文章只讲语法 html ...

  8. div仿textarea使高度自适应

    今天真的有些无语,在百度上找了很多关于textarea和input高度自适应的代码,并且考虑到了要判断textarea的滚动条,从而动态改变它的高度,直到我搜索了这个让我目瞪狗呆的办法…… <d ...

  9. 【代码笔记】iOS-UILable高度自适应(sizeWithFont)

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

随机推荐

  1. 第十一章 串 (c2)KMP算法:查询表

  2. hadoop深入简出(二)

    1.上传文件 Hadoop fs -put hello.txt / 2.查看上传的文件 hadoop fs -ls / hadoop fs -text /hello.txt 两个命令都可以 3.创建文 ...

  3. PHPlaravel中从数据库中选择数据是增加时间条件及各种条件

    注:附加条件后要加get函数. 1.public function getForDataTable($startTime,$endTime){ return $this->query() -&g ...

  4. oracle中job定时任务96

    .INTERVAL参数常用值示例 每天午夜12点            ''TRUNC(SYSDATE + 1)'' 每天早上8点30分         ''TRUNC(SYSDATE + 1) +  ...

  5. Angular之替换根组件

    一 在index.html中,替换根组件选择器 <!doctype html> <html lang="en"> <head> <meta ...

  6. 关于viewport我自己的理解

    其实即使不在html中添加meta viewport标签,每个移动端浏览器都会有一个默认的viewport,只是这个viewport的宽度是980,然后做1:3或者1:2的自动缩放.所以当不在html ...

  7. java_3选择与循环

    1.三种执行顺序(流程控制语句) 在Java中,有三种执行结构,第一种:顺序结构.第二种:循环结构.第三种:选择结构. 2.顺序结构 自上而下,顺序执行. 3.循环结构 (1)while语句 初始化表 ...

  8. echarts柱形图x轴显示不全或者每隔一个不显示的问题

    问题原因可能:x轴数据间隔太小: 问题解决: 1.调整间隔属性 xAxis: { type: 'category', //坐标轴斜着显示 axisLabel: { interval:0, rotate ...

  9. 在pom.xml中引入jar包坐标的依赖范围

    A依赖B,需要在A的pom.xml文件中添加B的坐标,添加坐标时需要指定依赖范围,依赖范围包括: compile:编译范围,指A在编译时依赖B,此范围为默认依赖范围.编译范围的依赖会用在编译.测试.运 ...

  10. [Z]Spring Data JPA 之 一对一,一对多,多对多 关系映射

    一.@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系. 实体 People :用户. 实体 Address:家庭住址. People 和 Address 是一对一的关系. 这 ...