第一种:

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. 207. Course Schedule(Graph; BFS)

    There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have prer ...

  2. Shell教程 之函数

    1.函数定义 shell中函数的定义格式如下: [ function ] funname [()] { action; [return int;] } 说明: 可以带function fun() 定义 ...

  3. checkbox/radio 样式修改

    只改颜色 input[type=radio],input[type=checkbox] { display: inline-block; vertical-align: middle; width: ...

  4. http://www.bugku.com:Bugku——PHP伪协议+魔幻函数+序列化的综合应用(http://120.24.86.145:8006/test1/)

      这一道题目,幸好俺有基础知识护体,不然还真干不掉.     首先,登录看题目,取消隐藏代码的注释.可知可输入三个参数txt.file和password并进行逻辑判断:应该让txt==‘welcom ...

  5. 微信小程序开发——点击按钮获取用户授权没反应或反应很慢的解决方法

    异常描述: 点击按钮获取用户手机号码,有的时候会出现点击无反应或很久之后才弹出用户授权获取手机号码的弹窗,这种情况下,也会出现点击穿透的问题(详见:微信小程序开发——连续快速点击按钮调用小程序api返 ...

  6. vue 使用scss

    使用vue-cli模板创建的项目中,使用scss步骤 1. cmd命令: cnpm  install sass-loader --save-dev cnpm install node-sass --s ...

  7. f5创建VS

    1.1) 2) 3) 4) 5) 2.Availability 1)Pool 中的monitor保障服务高可用 2)Pool 失败机制一 Fallback Host 最后的host( 使用于HTTP ...

  8. swift - UIWebView 和 WKWebView(iOS12 之后替换UIWebView)

    1.iOS12 之前 使用 UIWebView 1> private lazy var webV : UIWebView = { let v = UIWebView(frame: self.vi ...

  9. solrj 测试连接 6.6.5solr集群

    我开始环境是 linux上是6.6.5  pom也是6.6.5 按照学习视频的demo,他用的是4点几的solr,我换成了6点几的,没有CloudSolrServer  只有CloudSolrClie ...

  10. 百度 echarts

    插件地址:http://echarts.baidu.com/index.html ECharts 特性 特性 丰富的可视化类型 多种数据格式无需转换直接使用 千万数据的前端展现 移动端优化 多渲染方案 ...