两个方法:

- (CGSize)sizeWithAttributes:(nullable NSDictionary<NSString *, id> *)attrs NS_AVAILABLE(10_0, 7_0);
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);

eg1:

- (void)viewDidLoad {[super viewDidLoad];NSString *str = @"原纱央莉选择了加入AV界为自己谋求稳定的工作,并且选择了SOD作为自己的东家。在2008年11月25日sabra杂志里当时原纱央莉连载的专栏“SAORIchewBE”里公开了要加入AV的事情。";//设置按照什么字体大小来计算,你可以添加其他的属性NSDictionary *attrs = @{NSFontAttributeName : [UIFont systemFontOfSize:25]};//label1UILabel *label1 = [[UILabel alloc]init];label1.backgroundColor = [UIColor yellowColor];CGSize size1 = [str sizeWithAttributes:attrs];//方法1,计算大小,但是只有一行label1.frame = (CGRect){{50,50},size1};label1.text = str;[self.view addSubview:label1];//label2UILabel *label2 = [[UILabel alloc]init];label2.backgroundColor = [UIColor purpleColor];CGSize size2 = CGSizeMake(200, MAXFLOAT);//给出一个限制size,设定宽度200,高度可变CGRect rect2 = [str boundingRectWithSize:size2options:NSStringDrawingUsesLineFragmentOrigin attributes:attrscontext:nil];//方法2,计算大小,但是会根据size2来限制CGFloat label2_H = rect2.size.height;label2.frame = CGRectMake(50, 100, size2.width, label2_H);[self.view addSubview:label2];label2.text = str;label2.numberOfLines = 0;//label1和label2都没有设置字体的大小,所以你会感觉label有很多空白,看label3//label3设置了字体大小,因为默认的字体大小小于25,所以label1和label2都有空白,现在设置label3的字体和计算依据的字体一样大,看效果UILabel *label3 = [[UILabel alloc]init];label3.backgroundColor = [UIColor grayColor];CGSize size3 = CGSizeMake(200, MAXFLOAT);CGRect rect3 = [str boundingRectWithSize:size2options:NSStringDrawingUsesLineFragmentOrigin attributes:attrscontext:nil];//方法2CGFloat label3_H = rect3.size.height;label3.frame = CGRectMake(150, 300, size3.width, label3_H);[self.view addSubview:label3];label3.font = [UIFont systemFontOfSize:25];//相比label2多了这句代码label3.text = str;label3.numberOfLines = 0;
}

iOS开发--根据label内容动态设定label大小相关推荐

  1. iOS开发(5)动态监听键盘通知

    众所周知,在ios开发的页面传值和监听代理两个环节中,通知Notification是一个重量级角色. 这里主要介绍一下一种特殊ios自带的通知,如 UIKeyboardWillChangeFrameN ...

  2. (转)Limboy:自学 iOS 开发的一些经验

    不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...

  3. 自学 iOS 开发的一些经验 - 转自无网不剩的博客

    不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...

  4. Limboy:自学 iOS 开发的一些经验

    转自:http://www.cocoachina.com/ios/20150104/10823.html 不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔 ...

  5. 自学 iOS 开发的一些经验(一些很好的链接)

    不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...

  6. iOS开发进阶教程【第一季小试牛刀】

    2019独角兽企业重金招聘Python工程师标准>>> 一套关于iOS开发视频教程的进阶教程,主要讲解了iOS开发的基础内容:基本界面的创建.基本控件以及一个手把手的完成一个iOS小 ...

  7. 从Java/Android到Swift iOS开发:语言与框架对比

    今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发.主要内容如下: WhyFrom Java/Android to Swift Swift语言为什么值得学习? Java ...

  8. Android Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  9. iOS开发入门教程_iOS开发视频教程

    iOS开发入门教程 (Object-C.网络编程.多线程.蓝牙.二维码.Cocos2D.OpenGL) 适合人群:初级 课时数量:34课时 用到技术:IOS,Object-C,OpenGL,XCode ...

最新文章

  1. KVM — 开启嵌套虚拟化
  2. 安装mysql没有提示设置密码_18.04安装mysql没有提示输入密码
  3. Android签名机制---签名过程
  4. Python Day17 Django 03
  5. 1.MongoDB入门详解
  6. 程序读取凡人修仙传热度数据
  7. java开发学生管理系统
  8. mysql error 1213_webgame中Mysql Deadlock ERROR 1213 (40001)错误的排查历程
  9. STM32F429-Discovery 编译 uclinux
  10. AppCan学习笔记
  11. 自定义 Oh My Zsh 主题 cchi.zsh-theme
  12. android egl使用方法,Android EGL
  13. 显卡的指标有哪些方面_显卡的几个主要的性能指标有()
  14. 维生素C对免疫力有什么影响?
  15. 解决VirtualBox安装Ubuntu时界面显示不全问题
  16. Excel使用---excel2016___2维表转1维表(搬,侵删)
  17. 狗咬吕洞宾,不识好人心的来历
  18. 在 Android* 商务应用中实施地图和地理围栏特性
  19. 魔兽世界9.0主播最多的服务器,斗鱼主播服务器分布揭秘!魔兽世界怀旧服精彩不间断...
  20. java快速排序quicksort

热门文章

  1. 数学建模学习笔记之评价问题聚类分析法
  2. 考研——现场确认,照片,时间,材料
  3. win10本地连接不见了(手机连不上网怎么回事)
  4. vlookup多项匹配_VLOOKUP函数一对多查找,掌握方法后就是这么简单
  5. BeeWare无法连接https下载依赖包
  6. bean属性ref和depend-on的区别及应用
  7. c++后端开发书籍推荐
  8. 统计Windows系统日志
  9. Mactype与VirtualBox的兼容性问题
  10. HR筛选简历的12个要点,投简历必读!