我试图让我的UILabel
自动调整其高度以适应不同的输入字符串。虽然调用sizeToFIt
确实重新调整了UILabel
的大小,但它也重新调整了它的宽度!我需要一个统一的宽度,因此我有COMMENT_WIDTH
不变。奇怪的部分是我在以前的项目中使用完全相同的代码,并且在调用该方法后,其宽度保持不变。有任何想法吗?UILabel:防止方法sizeToFit修改宽度?
#define COMMENT_WIDTH 209
UILabel *comment = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, COMMENT_WIDTH, CGFLOAT_MAX)];
comment.font = [UIFont fontWithName:@"System" size:12.0f];
comment.numberOfLines = 200;
comment.text = quote.content;
comment.lineBreakMode = NSLineBreakByWordWrapping;
[comment sizeToFit];
我做了一个NSLog前后sizeToFit方法,这里是我的一些输出不同的字符串输入。请注意,宽度和高度会发生变化。
[2013-12-11 17:58:52.911 Inspyr[37855:70b] Before width: 209.000000, height : 340282346638528859811704183484516925440.000000
[2013-12-11 17:58:52.911 Inspyr[37855:70b] After width: 111.000000, height : 21.000000
2013-12-11 17:58:52.911 Inspyr[37855:70b] Before width: 209.000000, height : 340282346638528859811704183484516925440.000000
2013-12-11 17:58:52.911 Inspyr[37855:70b] After width: 36.000000, height : 21.000000
难道你以前的项目标签的宽度约束或约束的左侧和它的父的右侧? – rdelmar
不要这么想,我正在自行实例化UILabel。你能详细说明宽度约束是什么吗? – blee908
宽度约束是定义对象宽度的NSLayoutConstraint(自动布局系统的一部分)。 – rdelmar