这就是我正在做的事情。我不是动态创建标签,只是从对象库中选择。只有当我静态增加标签的高度时我才会工作,但我不知道在运行时
[self.lblDescription setText:@"This is going to be a test description but a very big description that should increase in height"];
[self.lblDescription sizeToFit];
标签不在下一行。但是,只要标签的左侧到达屏幕右侧,它就会剪切它
根据答案,我尝试了以下但不起作用:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.lblDescription setText:@"This is going to be a test description but a very big description that should increase in size"];
self.lblDescription.numberOfLines = 0;
[self.lblDescription sizeToFit];
}
我也尝试过设置 -
[self.lblDescription setLineBreakMode:NSLineBreakByWordWrapping];
在致电[self.lblDescription sizeToFit];
但没有工作
答案 0 :(得分:4)
检查 numberOfLines 属性
self.lblDescription.numberOfLines = 0;
编辑:也需要更改高度(评论说)。
NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"Helvetica Neue" size:19], NSFontAttributeName,
nil];
CGRect expectedLabelFrame = [text boundingRectWithSize:CGSizeMake(571, 500)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attributesDictionary
context:nil];
// Adjust the yourLabel the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelFrame.size.height;
yourLabel.frame = newFrame;
答案 1 :(得分:1)
将 adjustsFontSizeToFitWidth 属性设置为true
对我有用。
尝试
self.lblDescription.adjustsFontSizeToFitWidth = true
(默认情况下设置为 false )
答案 2 :(得分:0)
我发现在使用带有UILabel的sizeToFit时,在InterfaceBuilder中需要将Autoshrink属性从“Fixed Font Size”更改为“Minimum Font Size”。我通常会将其值设置为0.5,以确保其正常工作。