ios开发系列之label自适应大小
来源:互联网 发布:linux 禁止访问外网 编辑:程序博客网 时间:2024/06/05 02:52
根据label
的字体来自适应高度和宽度:
首先注意设置label
的行数属性
label.numberOfLines = 0; //0表示无限制,默认为单行
然后创建一个CGSize size
对象,用来接收根据label
上的字体来调整的宽度和高度,
方法1:让label.text
调用方法 (注意该方法返回的是CGRect
类型,所以需要在方法后加一个.size
)
boundingRectWithSize:<#(CGSize)#> options:<#(NSStringDrawingOptions)#> attributes:<#(NSDictionary *)#> context:<#(NSStringDrawingContext *)#>
其中第一个参数表示label
的理论上的最大bounds
: 一般限制行宽,让行高无限大 CGSizeMake(300, MAXFLOAT)
第二个参数表示 绘制label
时的附加选项 ,有四种:
1,NSStringDrawingTruncatesLastVisibleLine //如果文本内容超过指定的矩形限制,文本将被截去,并在最后一个字符后加上省略号2,NSStringDrawingUsesDeviceMetrics //计算布局时使用图元字形,而不是印刷字体3,NSStringDrawingUsesFontLeading //计算行高时使用行距 (字体大小 + 行间距 = 行距)4,NSStringDrawingUsesLineFragmentOrigin //绘制文本时使用 line fragment origin 而不是baseline origin.
一般选第四种.
第三个参数表示 属性 将label
上的字体font
存入字典,key
为NSFontAttributeName
例如: @{NSFontAttributeName: label.font}
第四个参数表示 上下文 包括一些信息,例如如何调整字间距以及缩放. 最终,该对象包含的信息将用于文本绘制. 该参数可为 nil
完整代码:
UILabel * label = [[UILabel alloc]init]; label.text = @"根据其上面的字体来调整自己的高度和宽度"; label.numberOfLines = 0; label.font = [UIFont systemFontOfSize:20]; CGSize size = [label.text boundingRectWithSize:CGSizeMake(100,MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: label.font} context:nil].size; label.frame = CGRectMake(0, 20, size.width, size.height); [self.window addSubview:label];
方法2: 让label.text
调用方法 sizeWithAttributes:<#(NSDictionary *)#>
注意:该方法只能返回单行文本,也就是说不管你设置label.numberOfLines
为多少,都只返回一行,只是改变label宽度.这个方法可以在label
上的字体较少时使用
CGSize size = [label.text sizeWithAttributes:@{NSFontAttributeName: label.font}];
方法3: 让label
调用方法 sizeThatFits:<#(CGSize)#>
其中CGSize
参数表示label
理论上的最大size
,一般限制行宽,让行宽无限大
CGSize size = [label sizeThatFits:CGSizeMake(100, MAXFLOAT)];
0 0
- ios开发系列之label自适应大小
- iOS label根据显示内容自适应大小
- iOS label根据显示内容自适应大小
- iOS label根据显示内容自适应大小
- ios开发之:UILabel行间距。label内容自适应
- 图片自适应label大小
- iOS开发之label
- IOS Label 自适应高度
- iOS 自适应label高度
- iOS label自适应
- iOS label自适应高度
- ios Label高度自适应
- iOS label自适应高度
- iOS label宽度自适应
- iOS label自适应高度
- ios8以后Label自适应大小
- Qt label自适应窗体大小
- Android开发之屏幕大小自适应
- CentOs6 安装PYTHON3
- COCI2014strojopis
- LeetCode: H-Index
- 如何使Android应用程序获取系统权限
- 饿汉式懒汉式
- ios开发系列之label自适应大小
- Linux基本命令
- ios开发 Xcode下安装Versions以及Xcode配置svn
- “反人类”设计
- Sql 通过ROWCOUNT遍历表
- 缩放动画的简单使用
- JS中apply和call的联系和区别
- 菜鸟一组
- 开放关闭原则(Open-Closed Principle)