首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UILabel的自动调整内容

UILabel的自动调整内容
EN

Stack Overflow用户
提问于 2014-03-06 11:56:48
回答 3查看 78关注 0票数 1

我已经确定了UILabel的界限。单行,2-3字。我必须改变字体的大小。以编程方式将内容调整为强确定矩形的最佳解决方案是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-11 08:12:54

我找到了手动检查尺寸的解决方案。其他的解决方案都是不恰当的。也许这段代码会对某人有帮助。在这里,要解决的代码:

代码语言:javascript
复制
-(void) autoResizeLabel: (UILabel*) label withMaxWidth:(CGFloat)mw withMaxHeight:(CGFloat)mh
{

    CGFloat fontSize = 1.f;

    CGFloat outSize = fontSize;
    CGFloat mDelta = 30.f;
    CGFloat delta = 1.f;
    BOOL activated = NO;
    BOOL broken = NO;
      for (float fSize = fontSize; fSize < fontSize + mDelta; fSize += delta)
    {
        CGRect r = [label.text boundingRectWithSize:label.frame.size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fSize]} context:nil];
        CGFloat width = r.size.width;
        CGFloat height = r.size.height;


        if (mw <= width || mh <= height)
        {
            if (activated)
            {
                outSize = fSize - delta;
            }
            broken = YES;
           break;
        }
        activated = YES;

        //NSLog(@"%f;%f;%f",fSize,mw,mh);
    }
    if (activated && !broken) outSize = fontSize + mDelta - delta;
    [label setFont:[UIFont systemFontOfSize:outSize]];


}
票数 0
EN

Stack Overflow用户

发布于 2014-03-06 12:00:46

设置标签的最小字体比例

代码语言:javascript
复制
_myLabel.adjustsFontSizeToFitWidth = YES;
_myLabel.minimumScaleFactor = 0.5f;
票数 0
EN

Stack Overflow用户

发布于 2014-03-06 12:02:22

使用XIB (或以编程方式)中的“自动收缩”属性,并设置最小字体大小,您的文本将适应该空间。但要用最小字体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22223805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档