UILabel:使用AutoLayout将字体大小调整为高度

时间:2014-01-21 22:09:22

标签: ios uilabel autolayout

我想要一个在另一个之下的几个标签。使用AutoLayout调整大小,我希望字体大小尽可能大。 adjustsFontSizeToFitWidth仅适用于宽度,但我得到以下结果

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以通过调用重新计算内容高度(如果将布局构建为tableview,可能会更容易管理,如果它还没有):

[cell.contentView systemLayoutSizeFittingSize:UILayoutFittingExpandedSize].height;

我还必须为特定目的进行硬编码(添加为UIFont类别):

+ (int)contentSizeHeightForItem {
    NSString *cat = [[UIApplication sharedApplication] preferredContentSizeCategory];
    if([cat isEqualToString:UIContentSizeCategoryExtraSmall]) {
        return 84;
    } else if([cat isEqualToString:UIContentSizeCategorySmall]) {
        return 86;
    } else if([cat isEqualToString:UIContentSizeCategoryMedium]) {
        return 88;
    } else if([cat isEqualToString:UIContentSizeCategoryLarge]) {
        return 92;
    } else if([cat isEqualToString:UIContentSizeCategoryExtraLarge]) {
        return 94;
    } else if([cat isEqualToString:UIContentSizeCategoryExtraExtraLarge]) {
        return 98;
    } else if([cat isEqualToString:UIContentSizeCategoryExtraExtraExtraLarge]) {
        return 102;
    }
    return 80;
}

答案 1 :(得分:0)

如果您的字体是常量,您可以从字体计算标签所需的高度,如下所示:

[/\\]

这将保证在设置约束时将考虑字体的完整高度。