OStack程序员社区-中国程序员成长平台

标题: ios - 自动调整 MULTILINE UILabel 的文本大小 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 00:38
标题: ios - 自动调整 MULTILINE UILabel 的文本大小

我想用 numberOfLines>1 自动调整 UILabel 的文本大小。 UILabel 的宽度和高度必须是固定的。有没有更好的解决方案,而不是手动计算字符和设置大小?我正在使用 iOS6。



Best Answer-推荐答案


我修改了我找到的解决方案。现在可以在 UITableViewCell 中使用它:

- (void)resizeFontForLabelUILabel*)aLabel maxSizeint)maxSize minSizeint)minSize lblWidth: (float)lblWidth lblHeight: (float)lblHeight {
    // use font from provided label so we don't lose color, style, etc
    UIFont *font = aLabel.font;

    // start with maxSize and keep reducing until it doesn't clip
    for(int i = maxSize; i >= minSize; i--) {
        font = [font fontWithSize:i];
        CGSize constraintSize = CGSizeMake(lblWidth, MAXFLOAT);

//        NSString* string = [aLabel.text stringByAppendingString"..."];
        CGSize labelSize = [aLabel.text sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:aLabel.lineBreakMode];

        if(labelSize.height <= lblHeight)
            break;
    }

    // Set the UILabel's font to the newly adjusted font.
    aLabel.font = font;

}

关于ios - 自动调整 MULTILINE UILabel 的文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399222/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4