UILabel不调整高度以适应文本

时间:2014-10-03 06:58:37

标签: ios objective-c uilabel font-size

我知道有很多关于UILabel及其大小的帖子,但我无法找到问题的答案。

我有一些UILabels在1行上有文字,不再需要更多行,并且文本设置为要调整的最小字体比例。在纵向模式下,屏幕有足够的高度空间,不会将我的UILabel高度缩放到临界点。

在横向模式下,我身高不足,UILabel身高非常小,文字在顶部和底部被切割。

我已经测试了我读过的所有内容:

  • 将换行符设置为剪辑模式

  • 使用adjustsFontSizeToFitWidth = YES;

在每种情况下,文字仅适合宽度,但不关心高度。

我应该使用一些丑陋的黑客来根据标签高度来计算字体大小,还是我会错过一些东西?

1 个答案:

答案 0 :(得分:0)

CGRect labelFrame = CGRectMake(22, 50, 280, 150);
UILabel *myLabel = [[UILabel alloc] initWithFrame:labelFrame];
[myLabel setText:finalRecipe];
[myLabel setBackgroundColor: [UIColor lightGrayColor]];
[myLabel setNumberOfLines:0];

CGFloat fontSize = 0.0f;
labelFrame.size = [myLabel.text sizeWithFont:myLabel.font
                            minFontSize:myLabel.minimumFontSize
                         actualFontSize:&fontSize
                               forWidth:labelFrame.width
                        lineBreakMode:myLabel.lineBreakMode];

myLabel.frame = labelFrame;
[self.view addSubview:myLabel];