2014-10-03 35 views
0

我知道有很多帖子关于UILabel,它的大小,但我无法找到我的问题的答案。UILabel不调整高度以适合文字

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

在风景模式下,我身高很矮,UILabel的身高很小,文字在上下方切割。

我已经测试everyting我读象:

  • 组换行符夹模式

  • 使用adjustsFontSizeToFitWidth = YES;

在每种情况下,文本只适合在宽度但不关心身高。

我应该使用一些丑陋的黑客根据标签的高度来计算字体大小吗?或者我错过了什么?

+1

发布您的代码,看看你是否错过了不便 – 2014-10-03 07:02:25

+0

一切都在界面生成器,除非我尝试通过代码添加adjustsFontSizeToFitWidth线。我无法向您显示任何代码。如果您想重现它,请创建一个新项目,并将uilabel放入最小尺寸为0.1的大字体中,并使高度方向的比例为屏幕高度的5%或10%。之后,玩一下屏幕旋转,你会遇到同样的问题。 – Kamax 2014-10-03 07:21:52

回答

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]; 
相关问题