【问题标题】:UILabel don't adjust in height to fit the textUILabel 不调整高度以适合文本
【发布时间】:2014-11-28 06:03:12
【问题描述】:

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

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

在横向模式下,我的身高很矮,UILabel 的高度非常小,文字在顶部和底部被剪切。

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

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

  • 使用adjustsFontSizeToFitWidth = YES;

在任何情况下,文本只适合宽度,而不关心高度。

我应该使用一些丑陋的技巧来根据标签高度自己计算字体大小还是我错过了什么?

【问题讨论】:

  • 贴出你的代码,看看有没有漏掉
  • 一切都在界面生成器中,除非我尝试通过代码添加 adjustsFontSizeToFitWidth 行。我不能给你看任何代码。如果要重现它,请创建一个新项目,将 uilabel 放入其中,字体大小较大,最小比例为 0.1,并将高度比例设置为屏幕高度的 5% 或 10%。在这之后,玩一下屏幕旋转,你会遇到同样的问题。

标签: ios objective-c uilabel font-size


【解决方案1】:
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];

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 2010-10-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多