如何让label大小自适应字体大小
2016-07-26 14:28
239 查看
方法1:
</pre><pre name="code" class="objc">UILabel *label = [UILabel alloc] init]; label.text = @"myLabel"; //labelsize的最大值 CGSize maximumLabelSize = CGSizeMake(100, 9999); //关键语句,根据label的内容获取指定范围内label的实际大小 CGSize expectSize = [label sizeThatFits:maximumLabelSize]; //绘制label的实际大小 label.frame = CGRectMake(0,0,expectSize.frame.size.width,expectSize.frame.size.height); [self.view addSubview:label];
方法2:(此方法是label文字自适应label大小)
label.adjustsFontSizeToFitWidth =
YES;
方法3:
转自http://www.jianshu.com/p/7c834398d932
(iOS学习)UILabel自适应文字高度
注意:此方法仅适用于IOS6及以上
为什么要自适应高度 ?
简单的说, 像微信的聊天框, 气泡是不知道每次输入的内容的, 如此一来, 需要Label适应文字的的高度, 以达到灵活的目的 .自适应文字高度的效果:
Paste_Image.png
接下来, 我们来实现这个过程
实现的关键方法介绍 :
NSString下面有一个方法, 可以通过NSString类型的文本计算出文字的范围- boundingRectWithSize:options:attributes:context:
详细请点击官网
此处有四个参数 :
size
限制最大宽高, 虽然是自适应, 但是需要限制最大的宽度和高度.
options
一个枚举, 绘制自定义方式字符串的选项(简而言之, 通常情况下, 选3选项就够用了, 如果效果不满意, 再试试其他的选项吧 ) : NSStringDrawingOptions
enum { NSStringDrawingTruncatesLastVisibleLine = 1 << 5, NSStringDrawingUsesLineFragmentOrigin = 1 << 0, NSStringDrawingUsesFontLeading = 1 << 1, NSStringDrawingUsesDeviceMetrics = 1 << 3, };typedef NSInteger NSStringDrawingOptions;
NSStringDrawingTruncatesLastVisibleLine : 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号 . 如果三选项没有选择, 忽略此选项.
NSStringDrawingUsesLineFragmentOrigin : 整个文本将以每行组成的矩形为单位计算整个文本的尺寸.
NSStringDrawingUsesFontLeading : 以字体间的行距(leading,行距:从一行文字的底部到另一行文字底部的间距。)来计算高度。
NSStringDrawingUsesDeviceMetrics : 计算布局时使用图像符号边界, 而不是排版的边界 .
attributes
应用于字符串的文本属性.
context
NSStringDrawingContext
控制如何调整字间距和缩放。对象包含的信息将用于文本绘制。该参数可为 nil
返回值
返回一个矩形, 这个矩形为文字所占的矩形 .
实现过程
Paste_Image.png
实现效果
相关文章推荐
- 杭电2602 Bone Collector(01背包)
- Linux定时任务没有执行问题分析与总结
- calamari1.3.1.1环境搭建
- Redis-3.0.7 集群
- javaee之hibernate的schemaExport
- vagrant 复制备份boxex
- android布局中FrameLayout与RadioGroup排版问题
- 数据结构
- java bridge相关
- VS2010 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 的解决方法
- 斯坦福CS231N深度学习与计算机视觉
- 简单介绍Spring的ContextLoaderListener
- XUtils3 的用法
- python 序列化之pickle
- 格格衣橱Axure高保真原型
- 源码-PL/SQL从入门到精通-第十五章-触发器-Part 2
- CAD如何创建图层并绘制图形
- iOS App开发那些事:如何选择合适的人、规范和框架?
- android ListView 几个重要属性,GridView通用
- 单例设计模式(高性能的)