【发布时间】:2013-12-12 01:01:27
【问题描述】:
我正在尝试让我的UILabel 自动调整其高度以适应不同的输入字符串。虽然调用sizeToFIt 确实会重新调整UILabel 的大小,但它也会重新调整它的宽度!!!我需要一个统一的宽度,因此我有 COMMENT_WIDTH 常量。奇怪的是,我在之前的项目中有完全相同的代码,并且在调用该方法后,UILabel 的宽度保持不变。有任何想法吗?
#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];
我在 sizeToFit 方法之前和之后做了一个 NSLog,下面是我针对不同字符串输入的一些输出。请注意宽度和高度会发生变化。
[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
【问题讨论】:
-
您之前项目中的标签是否有宽度限制,或者对其父视图的左右两侧有限制?
-
别这么认为,我正在自己实例化 UILabel。你能详细说明什么是宽度限制吗?
-
宽度约束是定义对象宽度的 NSLayoutConstraint(自动布局系统的一部分)。
-
知道了。如何在代码中添加宽度约束(或设置最小宽度)?根据我的研究,sizeToFit 可以将宽度设置为低于我最初设置的宽度。
-
我不确定您是否需要添加约束。我试过你的代码,对我来说效果很好。你已经用你的框架给它一个固定的宽度。
标签: ios objective-c uikit uilabel