您的位置:首页 > 产品设计 > UI/UE

Ios UILabel 自适应 文本高度

2015-04-24 09:40 267 查看


一 固定宽度

[python] view
plaincopy

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 21)];

if (label) {

// 设置文本内容

label.text = @"我真的很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长";

// 0代表不限制行数

[label setNumberOfLines:0];

// 因为行数不限制,所以这里在宽度不变的基础上(实际宽度会略为缩小),高度会自动扩充

[label sizeToFit];

[self.view addSubview:label];

[label release];

}

因为label设定为行数无限制,所以label自适应会增加label的高度,实际的label.frame为(0, 0, 306, 105)


二 固定高度

[python] view
plaincopy

UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 21)];

if (label2) {

// 设置文本内容

label2.text = @"我真的很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长";

// 0代表不限制行数

[label2 setNumberOfLines:1];

// 因为这里行数进行了限制,所以这里在高度不变的基础上,宽度增加了

[label2 sizeToFit];

[self.view addSubview:label2];

[label2 release];

}

因为label对行数进行了限制,固定为1行,所以自适应会增加label的宽度,实际的label.frame为(0, 0, 1275, 21)。

以此类推,如果将行数设置为2,那么label.frame将会变为(0, 0, 306, 42);随着行数增加,label.frame会越来越逼近(0, 0, 306, 105),最后等于这个值(当行数大于等于5);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: