3

我有 2 个 UILabel 用于记分应用程序(Home 和 Away)。用户可以点击 Home 或 Away 并将标签更改为他们喜欢的任何内容。这一切都很好。当用户输入的名称大于标签大小时,它将缩小字体以适应。这使得 2 个标签的字体大小不再匹配,并且看起来不正确。我的问题:如何将一个标签的字体大小设置为另一个已“自动收缩”的标签的大小?

我还意识到我需要编写代码来确定两个标签之间哪个字体大小更小,并将它们都设置为那个数字。只要我得到上述问题的答案,我认为我不会对此有任何问题。看起来它应该很简单,但到目前为止它一直让我望而却步。

4

2 回答 2

0

所以我希望你知道这两个标签的帧大小。

使用– sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:来找到它将使用的最小字体大小。

如果您有任何疑问,请告诉我。

于 2012-08-24T04:00:59.233 回答
0

对我来说,这很好用:

- (CGFloat)actualTitleFontSize
{
    NSStringDrawingContext *labelContext = [NSStringDrawingContext new];
    labelContext.minimumScaleFactor = 0.2;

    NSAttributedString *attributedString =
        [[NSAttributedString alloc] initWithString:label.text attributes:@{NSFontAttributeName : label.font}];
    [attributedString boundingRectWithSize:label.frame.size
                                   options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                   context:labelContext];

    CGFloat actualFontSize = label.font.pointSize * labelContext.actualScaleFactor;

    return actualFontSize;
}
于 2016-02-15T16:25:46.820 回答