我们需要根据UILabel中字符串的多少来确定label的大小(长度),下面是label自适应大小的方法
// 初始化 label
// 初始化 label
UILabel
*label = [[
UILabel
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
0
,
0
)];
//设置自动行数与字符换行
[label
setNumberOfLines
:
0
];
// 0
代表有无限多行
label.
lineBreakMode
=
UILineBreakModeWordWrap
;
//
这个是换行模式
,
按单词换行
// 测试字串
NSString
*str =
@"
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
这里有好多字
...
"
;
// 把字符串加到label上
label.
text
= str;
// 设置字体
label.
font
= [
UIFont
fontWithName
:
@"Arial"
size
:
12
];
//设置一个行高上限
CGSize
size =
CGSizeMake
(label.
frame
.
size
.
width
,
2000
);
//计算实际frame大小,并将label的frame变成实际大小
CGSize
labelSize = [label.
text
sizeWithFont
:label.
font
constrainedToSize
:size
lineBreakMode
:
UILineBreakModeWordWrap
];
label.frame = CGRectMake(0, 0, label.frame.size.width, labelSize.height);