使用autolayout将UILabel大小调整为其内容。适合宽度和高度

时间:2014-12-15 11:50:30

标签: ios uilabel autolayout uistoryboard ios-autolayout

我发现this solution如何使UILabel高度符合其内容。例如,如果我遵循建议的指令并修改垂直 ContentHuggingPriority 和垂直 ContentCompressionResistancePriority ,则效果很好。因此,故事板自动将UILabel高度调整为文本高度。如果我对水平 ContentHuggingPriority ContentCompressionResistancePriority 进行相同操作并编辑UILabel宽度约束优先级,则UILabel会使宽度与文字宽度相符。

我的问题是如何设置参数以适应文本高度和文本宽度的大小?因为看起来我们只能适应或高度或宽度的UILabel内容。

1 个答案:

答案 0 :(得分:0)

+(CGSize)findTextHeight:(float)height width:(float)width string:(NSString *)desc font:(UIFont*)font{
    if ([desc isKindOfClass:[NSNull class]]) {
        return 0.0;
    }
    CGRect textRect =[desc boundingRectWithSize:CGSizeMake(width, height)
                                        options:NSStringDrawingUsesLineFragmentOrigin
                                     attributes:@{NSFontAttributeName:font}
                                        context:nil];
    CGSize size = textRect.size;
    return size;
}

这将根据给定的文字和最小高度和最小宽度为您提供标签尺寸。