自动收缩后确定字体大小

时间:2012-08-24 03:36:59

标签: ios xcode uilabel font-size

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

我还意识到我需要编写代码来确定两个标签之间哪个字体较小,并将它们都设置为该数字。只要我得到上述问题的答案,我认为我不会有问题。看起来应该很简单,但到目前为止我还是没有。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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;
}